2012-01-01 12 views
0

の代わりにこのような何か:C#プロパティのアクセサを直接割り当てることはできますか?

Func<bool> func; 

bool Property { 
    get {return func();} 
} 

私はこのような何かを行うことができるようにしたい:

Property.get =() => booleanReturningExpression; 

が可能ということですか、あなたが近づいている偽の構文に私を得ることができますか?

+6

デリゲートの名前を「デリゲート」とするのは悪い考えです。それはSystem.Delegateとあまりにも簡単に混同されます。 –

+0

質問が構文の利用可能性だけに限定されている場合は、.NET用のAspect Oriented Programmingオプションをチェックしてください。あなたのコードを書き直すAOPエンジンによって解釈される属性でプロパティを飾ることは可能かもしれません。 –

+0

@ Eric私は2つの黒い言葉を連続して見るのが好きではないので、名前をつけました。 o_O – Jessy

答えて

3

いいえ、それは純粋なC#では可能ではありません。あなたは、フィールドまたは(readonly)プロパティを使用することができます

public Func<bool> PropertyGet; 

をし、それに割り当てるが、それは非常に良い解決策はありません。あなたは糖衣構文よりも何のためにこの機能が必要な場合は、プロパティから委任できます

protected Func<bool> PropertyGet; 

public bool Property { 
    get { return this.PropertyGet(); } 
} 

そして、あなたは非常に同じように設定することができると思います。また、の場合は、Property.getが必要で、カスタムPropertyクラスの既定のメソッドを設定すると、代理人を模倣することができます。 (これはC#で可能かどうかは分かりませんが、VB.NETにあります)

関連する問題