传递对象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; 
    } 
} 
+2

效率是每单位成本完成的工作的比例。在这种情况下,“高效”意味着什么?你正在做什么工作,你测量的是什么成本? – 2013-04-09 05:57:26

串和任何类是引用类型

这意味着两个函数采取其中实际数据被保持

没有被复制托管堆的参考。

如果你知道指针与传递指针基本相同。