什么是针对以下行为的C#语言规范。属性的值将保留,但新实例(null或new对象)不会更新为实际参数。除了改变它指向的对象之外,它基本上是作为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"
}
}
究竟是什么问题?你期望什么与实际发生的事情? – 2012-04-06 10:49:15
上面是否真的打印出“Hello World”(它不应该)或者它是做什么的? – MoonKnight 2012-04-06 11:14:01
我更新了这个问题,请看看 – sarat 2012-04-07 17:27:59