0
取而代之的是這樣的:你可以直接指定一個C#屬性的訪問器嗎?
Func<bool> func;
bool Property {
get {return func();}
}
我希望能夠做這樣的事情:
Property.get =() => booleanReturningExpression;
這是可能的,或者你可以讓我更接近假語法?
取而代之的是這樣的:你可以直接指定一個C#屬性的訪問器嗎?
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中。)
命名委託「委託」是一個壞主意;它很容易與System.Delegate混淆。 – 2012-01-01 03:23:42
如果問題僅限於語法可用性,您可能需要查看.NET的面向方面編程選項。您可以使用由AOP引擎解釋的屬性修飾您的屬性,從而爲您重寫您的代碼。 – 2012-01-01 03:33:37
@ Eric我只是因爲我不喜歡看連續兩個黑字而命名它。 o_O – Jessy 2012-01-01 03:59:51