我按照这种模式编写了大量不可变类型:
class A
{
private readonly SomeType b;
public A(SomeType b)
{
this.b = b;
}
public SomeType B
{
get {return b; }
}
}
是否可以使用自动属性复制此模式?我能得到的结果是:
class A
{
public A(SomeType b)
{
B = b;
}
public SomeType B
{
get; private set;
}
}
但这并不令人满意,因为它并不能保证对B的引用不会改变(我们有效地丢失了readonly
)。是否有可能做得更好?
答案 0 :(得分:1)
使用当前版本的C#,这是不可能的。但是,this blog post提到了C#设计团队在最近一次会议上讨论的C#6中可能出现的新功能 - 只读自动属性,这正是您所追求的。
public int X { get; } = x;