【发布时间】:2012-04-06 10:44:30
【问题描述】:
以下行为的 C# 语言规范是什么。属性的值被保留,但新实例(null 或新对象)不会更新为实际参数。除了更改它指向的对象之外,它基本上起到 ref 的作用。
主函数中的对象保持不变(非空),但字符串属性已更改为“Hello World”
class Program
{
class MyClass
{
public string str;
}
static void MyMethod(MyClass obj)
{
obj.str = "Hello World";
obj = null;
}
static void Main(string[] args)
{
MyClass o = new MyClass();
o.str = "Hello";
Console.WriteLine(o.str);
MyMethod(o);
Console.WriteLine(o.str); // prints "Hello World"
}
}
【问题讨论】:
-
问题到底是什么?您的预期与实际发生了什么?
-
上述内容是否实际打印“Hello World”(它不应该打印)还是应该这样做?
-
我更新了问题,请看一下
-
@sarat 更新了我的答案
-
@sarat 下面的答案有帮助吗?
标签: c#