什麼是針對以下行爲的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