没有 setter/getter 的“只读”公共属性
本文关键字:属性 只读 setter getter 没有 | 更新日期: 2023-09-27 18:36:11
C#有这样的功能吗(比如Python的getter模式)?
class A
{
public [read-only] Int32 A_;
public A()
{
this.A_ = new Int32();
}
public A method1(Int32 param1)
{
this.A_ = param1;
return this;
}
}
class B
{
public B()
{
A inst = new A().method1(123);
Int32 number = A.A_; // okay
A.A_ = 456; // should throw a compiler exception
}
}
为了获得这个,我可以在 A_ 属性上使用私有修饰符,并且只实现一个 getter 方法。这样做,为了访问该属性,我应该始终调用 getter 方法......这是可以避免的吗?
是的,这是可能的,语法是这样的:
public int AProperty { get; private set; }
是的。 可以将只读属性与私有 setter 一起使用。
使用属性 - msdn
public string Name
{
get;
private set;
}