我想看看是否可以使类的实例不可变,即使类本身不是。我在这里有一个与IntPtr.Zero
和其他静态字段类似的情况,除了它是一个可变类而不是结构。
class TestClass
{
public static readonly TestClass GoldStandard = new TestClass();
public int field = 0;
}
class Program
{
static void Main(string[] args)
{
TestClass test = TestClass.GoldStandard;
test.field = 1; // I want to keep this from happening.
Console.WriteLine(TestClass.GoldStandard.field);
}
}
如何防止GoldStandard
被修改?
对于Is there an easy way to make an immutable version of a class?,它听起来与我的问题非常相似。但是,有一些重要的原因它不应该被计算在内。
我了解主持人在扫描重复内容时,不能花太多时间深入了解问题,但我认为将我的问题作为副本关闭是不公平的因为这种肤浅的相似之处。