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 回答