public class Class1
{
public static string Name="foo";
public void ChangeName(string _name)
{
Name=_name;
}
}
in some other class..
Class1 _c=new Class1();
_c.ChangeName("bar");
通過非靜態方法間接地改變的類的一個靜態成員和名稱得到改變..實例改變一個靜態成員!實例可以在c#
我以爲一個靜態成員只適用於一個類。如果一個類想要它可以改變它的靜態成員。 但是這裏的一個實例能夠間接地改變它。不應該有一個實例不能改變它嗎?當我們創建一個實例時,它在堆中佔據自己的空間,而無需訪問類的靜態成員。那麼這裏究竟發生了什麼?
您如何想象所有外部組件都能夠更改靜態變量並消除類實例的可能性? – 2012-03-31 19:52:23
這是一個多線程的噩夢。 ;) – Marc 2012-03-31 19:56:02
是不是像一個房子(實例)決定藍圖(House Class)以及其他實例的命運。如果藍圖希望它可以改變,那麼從這個新藍圖創建的房屋會受到影響。不是決定其他房屋應該如何看的房子。這不是一個點嗎? – singsuyash 2012-03-31 20:00:04