9

私はこのような Func を持っています:

 Func<MyClass, bool> func = x=>Id == 5;

どのように変換できますか:

 Expression<Func<MyClass, bool>>
4

3 に答える 3

13

あなたはただ書くことができます:

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の呼び出しの式ツリーに設定されます。funcfunc

于 2013-02-18T11:51:23.763 に答える
6

これを試して:

Func<MyClass, bool> func = x=>Id == 5;
Expression<Func<MyClass, bool>> expr = mc => func(mc);
于 2013-02-16T05:48:10.270 に答える
2

作成したデリゲートへの呼び出しを表す式を作成できます。しかし、ほとんどの場合、Expressions を使用しているときは、コードの動作を理解するために (たとえば、SQL に変換するために) 使用します。そして、不透明な関数を呼び出す式でそれを行うことはできません。

于 2013-02-16T14:23:39.777 に答える