你能直接为c#属性分配访问器吗?
本文关键字:访问 分配 属性 | 更新日期: 2023-09-27 18:19:06
而不是像这样:
Func<bool> func;
bool Property {
get {return func();}
}
我希望能够做这样的事情:
Property.get = () => booleanReturningExpression;
这可能吗,或者你能让我更接近那个假语法吗?
不,这在纯c#中是不可能的。您可以使用字段或(readonly
)属性:
public Func<bool> PropertyGet;
并赋值,但这不是一个很好的解决方案。如果您需要此特性的用途不仅仅是语法糖,您可以从属性中进行委托:
protected Func<bool> PropertyGet;
public bool Property {
get { return this.PropertyGet(); }
}
你可以非常相似地设置它。或者,如果您真的想要Property.get
,您可以模拟委托,并在自定义Property
类上设置默认方法。(我不知道这是否可能在c#中,但它是在VB.NET)