有没有办法知道函数是否是MethodInfo中的Expression?
答案 0 :(得分:5)
扩展我的评论并进一步@SLAks回答......
表达身体的成员只是语法糖,他们编译成相同的代码。例如,考虑这个类:
public class Blah
{
public void Foo() { Console.WriteLine("Hello"); }
public void Bar() => Console.WriteLine("Hello");
}
生成的IL看起来像这样,除了nop
(在调试模式下编译的副作用),它们是相同的:
Blah.Foo:
IL_0000: nop
IL_0001: ldstr "Hello"
IL_0006: call System.Console.WriteLine
IL_000B: nop
IL_000C: ret
Blah.Bar:
IL_0000: ldstr "Hello"
IL_0005: call System.Console.WriteLine
IL_000A: nop
IL_000B: ret
答案 1 :(得分:4)
表达身体的成员纯粹是语法糖 无论如何编译的程序集完全相同。