传递对象vs字符串作为方法参数
问题描述:
使用下面的代码,我明白getStringAgain(classOne.str1)比getAstring(classOne)要好,因为我们只想传入因数据隐藏/封装等原因而需要的东西。传递对象vs字符串作为方法参数
但是,是否有任何记忆好处?显然,classOne对象比单个字符串大,但是因为在这两种方法中,我们只传入一个对象的引用,因此只有引用被复制到堆栈中,它们在内存方面效率如何?
Class ClassOne()
{
public string str1 = "string1";
public string str2 = "string2";
}
Class ClassTwo()
{
public ClassTwo()
{
ClassOne classOne = new ClassOne();
string a = getAstring(classOne);
string b = getStringAgain(classOne.str1)
}
private string getAstring(ClassOne classOne)
{
return classOne.str1;
}
private string getStringAgain(string str)
{
return str;
}
}
答
串和任何类是引用类型
这意味着两个函数采取其中实际数据被保持
没有被复制托管堆的参考。
如果你知道指针与传递指针基本相同。
效率是每单位成本完成的工作的比例。在这种情况下,“高效”意味着什么?你正在做什么工作,你测量的是什么成本? – 2013-04-09 05:57:26