class Program
{
static void Main(string[] args)
{
something s = new something();
s.DoIt(10);
Console.Write(s.testCount);
}
}
class something
{
public int testCount
{
get { return testCount; }
set { testCount = value + 13; }
}
public void DoIt(int val)
{
testCount = val;
}
}
是我所擁有的,因爲我想測試和玩弄C#的getters/setter東西。但是,我得到一個StackOverFlowException未處理「set {testCount = value + 13}」。而且我無法一步步完成,因爲我收到了一個「調試器無法繼續運行流程,流程已終止」的消息。任何想法我做錯了什麼?在getter/setter c中的無限循環#
編輯:今天我瞭解到,我做了一個非常愚蠢的銳皮。鑑於衆多即時響應。現在我知道更好。
你正在訪問setter中的同一個propery。您可能需要有一個私人變量,用於訪問您的公共財產。 (不燃燒,但這段代碼讓我發抖) –
啊。我不太習慣物業的運作方式,我只需要一起扔垃圾,試圖理解一些東西。 –
爲了解釋無限循環,@ToonCasteele的含義是,既然你在*自己的setter *中調用了'testCount'的set方法,實際的set方法會自己調用它自己。 – tnw