CS8852无法在VS调试器中编辑init属性的值



我在record中有一个定义为public bool? Enable{get; init}的属性。在创建了record之后,我闯入VS调试器并尝试编辑它的值。这样做时会出现以下错误:

CS8852: Init-only property or indexer can only be assigned in object initializer...

调试器是否应该在内存中进行编辑?为什么情况并非如此。

我们可以看到init:的定义

在C#9及更高版本中,init关键字定义属性或索引器中的访问器方法。仅init的setter仅在对象构造期间为属性或索引器元素分配值这增强了不变性,因此一旦对象初始化,就不能再更改它

因此,如果在调试时尝试修改其值,它将报告错误。

此链接可以提供更多信息。希望它能帮助你。

最新更新