我一直试图围绕这个FXCop违规行为"DoNotDeclareReadOnlyMutableReferenceTypes"
MSDN:http://msdn.microsoft.com/en-us/library/ms182302%28VS.80%29.aspx
来自MSDN的代码会导致此违规行为:
namespace SecurityLibrary
{
public class MutableReferenceTypes
{
static protected readonly StringBuilder SomeStringBuilder;
static MutableReferenceTypes()
{
SomeStringBuilder = new StringBuilder();
}
}
}
Run Code Online (Sandbox Code Playgroud)
从Jon 在这里和这里的答案,我理解持有对象引用的字段(在本例中为SomeStringBuilder)是readonly而不是对象本身(由其创建new StringBuilder())
所以以这个例子为例,一旦该字段引用它,我将如何更改对象本身?我喜欢Eric Lippert关于如何更改只读数组的示例,并希望看到类似于任何其他可变引用类型的内容