我剛剛在LINQPad中玩弄了一些代碼,並設法使程序崩潰並出現一個stackoverflow異常。從公共實例屬性返回靜態屬性的值
我基本上在字段中創建了一個靜態屬性,並使用一個屬性來返回實例的值。
我的實例屬性的getter會返回靜態字段的值,但setter會自己設置。什麼時候會使用這種類型的模式,以及如何產生一個stackoverflow異常?我所做的
代碼示例:
void Main()
{
SomeClass myinstance = new SomeClass();
SomeClass.x = "Some Value";
myinstance.y = "Some other value";
myinstance.y.Dump();
}
public class SomeClass
{
public static string x;
public string y
{
get { return x; }
set { y = value; }
}
}
哦,是的!謝謝馬克。什麼菜鳥的錯誤:P – 2010-04-18 19:08:38
容易讓人......我敢肯定很多人都這樣做:) – 2010-04-18 19:10:02