私はこのような Func を持っています:
Func<MyClass, bool> func = x=>Id == 5;
どのように変換できますか:
Expression<Func<MyClass, bool>>
私はこのような Func を持っています:
Func<MyClass, bool> func = x=>Id == 5;
どのように変換できますか:
Expression<Func<MyClass, bool>>
あなたはただ書くことができます:
Expression<Func<MyClass,bool>> expr = x=>Id == 5;
これはexpr
、の式ツリーに設定されますId == 5
。
もし、するなら:
Func<MyClass, bool> func = x=>Id == 5;
Expression<Func<MyClass, bool>> expr = mc => func(mc);
次に、これは、の本体の式ツリーではなく、expr
の呼び出しの式ツリーに設定されます。func
func
これを試して:
Func<MyClass, bool> func = x=>Id == 5;
Expression<Func<MyClass, bool>> expr = mc => func(mc);
作成したデリゲートへの呼び出しを表す式を作成できます。しかし、ほとんどの場合、Expression
s を使用しているときは、コードの動作を理解するために (たとえば、SQL に変換するために) 使用します。そして、不透明な関数を呼び出す式でそれを行うことはできません。