結論
唯讀屬性要初始化,請使用 Initialization 語法,而不是 Expression Bodied Members。
Expression Bodied Members 每次讀取都會再評估一次。
緣由
一個 Dictionary 類型的屬性,每次 Add 後 Count 還是 0。
是遇到鬼嗎?
研究了一下,原來是自己耍蠢。
方案
我想要的應該是
Dictionary<string, int> SomeDict { get; } = new Dictionary<string, int>不應該是();
Dictionary<string, int> SomeDict => new Dictionary<string, int>();
參考
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/classes#properties基礎很重要,似是而非最危險。
留言
張貼留言
歡迎留言給我們