【发布时间】:2012-03-03 18:22:45
【问题描述】:
使用 == 和 != 运算符时,String 对象的行为类似于 Value 类型,这意味着检查的是实际对象而不是引用。
参数传递、赋值和复制呢?
字符串参数传递: 将引用类型传递给方法时,会复制其引用,但底层对象保持不变。
对于 C# 中的 String 类型,这是否也是如此?我的意思是在下面的代码中会有 2 个指针(messageVar 和 messageParam)指向同一个对象:
public static void main()
{
string messageVar = "C#";
Test(messageVar);
// what about in assignement?
string messageVar2 = messageVar;
}
public void Test(string messageParam)
{
// logic
}
当它被分配给一个变量时呢?我猜想,引用只会被复制,实际对象在字符串实习生池中保持不变。不确定。
messageVar2 是否也引用同一个对象?
谢谢,
【问题讨论】:
标签: c# string operators parameter-passing variable-assignment