debugging CS8852无法在VS调试工具中编辑init属性的值

pqwbnv8z  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(147)

我在record中定义了一个属性public bool? Enable{get; init}。在创建record后,我闯入VS调试器并尝试编辑其值。在这样做时,它给出了以下错误:
CS8852: Init-only property or indexer can only be assigned in object initializer...
调试器不应该在内存中编辑吗?为什么不是这样?

vql8enpb

vql8enpb1#

我们可以看到init的定义:
在C# 9和更高版本中,init关键字定义属性或索引器中的访问器方法。仅init-only setter仅在对象构造期间为属性或索引器元素赋值。这强制实现了不变性,因此一旦对象初始化,就不能再次更改。
因此,如果在调试时试图修改其值,它将报告错误。
这个link可以给予更多的信息。希望它能对你有所帮助。

相关问题