我有一個屬性定義public bool? Enable{get; init}為record. 創建后record,我闖入 VS 除錯器并嘗試編輯其值。這樣做時會出現以下錯誤:
CS8852: Init-only property or indexer can only be assigned in object initializer...
除錯器不應該在記憶體中編輯嗎?為什么不是這樣。
uj5u.com熱心網友回復:
我們可以看到init的定義:
在 C# 9 及更高版本中,init 關鍵字定義屬性或索引器中的訪問器方法。僅 init 設定器僅在物件構造期間將值分配給屬性或索引器元素。這強制執行不變性,因此一旦物件被初始化,就不能再次更改。
所以在除錯的時候嘗試修改它的值會報錯。
此鏈接可以提供更多資訊。希望它可以幫助你。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/520528.html
