3

匿名メソッドのソース コードを取得するにはどうすればよいですか?

例えば:

Func<Boolean> func = (() => DateTime.Now.Seconds % 2 == 0);

Console.WriteLine(GetSourceCode(func)); // must: DateTime.Now.Seconds % 2 == 0

String GetSourceCode<T>(Func<T> f) - ???
4

1 に答える 1

6

それを Expression 内にラップし、その上で ToString() を呼び出すと、ソース コードが取得されます。

このような:

Expression<Func<Boolean>> func = (() => DateTime.Now.Seconds % 2 == 0);
var str = func.ToString();

出力 str は次のようになります。 () => DateTime.Now.Seconds % 2 == 0

于 2013-03-02T13:12:43.653 に答える