传递对象和字符串作为方法参数

本文关键字:方法 参数 字符串 对象 | 更新日期: 2023-09-27 18:08:15

使用以下代码,我理解getStringAgain(classOne.str1)比getAstring(classOne)更好,因为我们只想传递必要的数据,因为数据隐藏/封装等。

然而,这对记忆有什么好处吗?显然,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;
    }
}

传递对象和字符串作为方法参数

string和ANY类是引用类型

意味着这两个函数都引用了托管堆,其中保存了实际数据

不复制任何内容。

如果你知道指针的话它基本上和传递指针是一样的