我希望能够为我的一个类提供“默认”值或状态。我们将该类称为Foo
,它看起来像这样:
class Foo
{
public static readonly Default = new Foo() { Bar = 42 };
public int Bar { get; set; }
}
这说明我希望Foo
实例的默认值将其成员Bar
设置为42.当我对{{{{}}的引用进行更改时会出现问题1}}。
Foo.Default
我该如何避免这种行为?
答案 0 :(得分:1)
让Foo
永久不变。
public class Foo
{
public static readonly Foo Default = new Foo(42);
public Foo(int bar)
{
Bar = bar;
}
public int Bar { get; private set; }
}
在大多数情况下,暴露字段被认为是不好的做法,因为它破坏了封装。
答案 1 :(得分:0)
为此,我建议:
public static Foo Default { get { return new Foo (){ Bar = 42 }; }
}
如果任何acce更改默认值,则其他acce可以使用Default值(但不能引用!)