|
|
1
3
由于mutablereferencetypes类出现在问题中,因此您不能真正从任何外部调用程序对其进行更改,因为somestringbuilder字段是私有的。 然而,类本身可能会改变字段。目前没有,但在以后的迭代中可以。 下面是一个示例方法:
调用mutate方法将改变类,因为SomeStringBuilder现在已经改变了。 不变性不仅关系到代码的当前体现,还关系到保护自己不受将来错误的影响。并非所有的类都需要是不可变的,但是如果您选择创建一个不可变的类型,那么保持一致是最安全的。 |
|
|
2
6
readonly 表示不能更改参考后期构造。
fxcop的官方立场是,它建议只声明不能修改的类型
我不同意fxcop的这条规则。只要一个人明白这只是一种执行,即引用可能不会改变后构造,那么就没有混淆。
请注意,值类型由
|
|
3
0
.NET具有此处允许的不可变引用类型列表,
抱怨的是,您正在构造的不是不可变的,尽管静态构造函数被调用一次,类被初始化一次,但这是保持不变的,其余的都是可变的。一个线程可以调用
声明它
|
|
|
4
0
不能更改引用,但对(可变)对象的任何调用都会更改其状态。
因此,由于
基本上,
|
|
5
0
您不会更改对象的值。这就是规则的要点。声明为readonly的任何字段都应为infact,readonly。具有只读可变引用是一种矛盾修饰。如果你能改变字段“指向”的值,那么它就不再是只读的了。将某个对象A的所有成员的值赋给由字段表示的某个对象B,或者简单地将A赋给该字段(当它们属于同一类型时),这两者之间实际上没有任何功能上的区别,但是当字段声明为只读时,只有一个有效,但是因为您可以有效地改变要表示的值由字段指定,它是已声明的,不是真正只读的 |
|
Ben · 统计向量中的单词在字符串中出现的频率 1 年前 |
|
|
bear_525 · 从列中删除中间名和首字母,并保存在单独的列中 1 年前 |
|
|
asdfadf · 为什么具有相同内存值的字符串和整数打印方式不同? 1 年前 |
|
|
user764754 · 防止多行原始字符串文字中出现新行字符 1 年前 |
|
|
Bogaso · 从列表中返回与模式匹配的元素 1 年前 |
|
|
Jasco · 如何使用VBA提取两个相似字符之间的字符串中的单词? 1 年前 |