.net KeyValuePair<;TKey,TValue>;-成员字段问题

.net KeyValuePair<;TKey,TValue>;-成员字段问题,.net,.net,在查看KeyValuePair结构的源代码时,私有成员字段仅由构造函数写入。是否有某种形式的设计考虑,以解释为什么没有标记只读?我不相信这里有任何明确的设计决定。几乎可以肯定,这是代码的原始作者的疏忽 同样在编写这种类型时,对于这种情况,readonly的使用也有点争议。相当多的人认为在非不变字段上使用只读是一种不好的做法。以至于添加了一条FxCop规则来强制执行此实践()。打字机作者可以简单地按照当时的规则演奏 你看到它“是”有争议的。争议解决了吗?@Jesse,总的来说还是有点争议。幸运的是

在查看
KeyValuePair
结构的源代码时,私有成员字段仅由构造函数写入。是否有某种形式的设计考虑,以解释为什么没有标记
只读

我不相信这里有任何明确的设计决定。几乎可以肯定,这是代码的原始作者的疏忽


同样在编写这种类型时,对于这种情况,
readonly
的使用也有点争议。相当多的人认为在非不变字段上使用
只读
是一种不好的做法。以至于添加了一条FxCop规则来强制执行此实践()。打字机作者可以简单地按照当时的规则演奏

你看到它“是”有争议的。争议解决了吗?@Jesse,总的来说还是有点争议。幸运的是,我的前几个小组几乎都一致认为使用
只读
是正确的,所以我倾向于感觉它消失了。但我确信这在一些地方仍然是一个热门话题。谢谢。我一直在默认情况下将所有字段
设置为只读
(很像默认情况下以
密封
的形式启动我的类),并且只有在我发现我的设计要求类中的可变性时才小心地将其删除。@Jesse,这也是我喜欢的方法。