我没有使用闭包,但它不会编译为静态方法

问题描述

Why do some C# lambda expressions compile to static methods?

即使我没有使用闭包,它也不会像上面那样编译。

我目前使用 .NET 5.0,我尝试更改目标框架。但它不起作用。

为什么 target 不引用 null?

我目前正在编写与 linq 表达式相关的代码,我需要一个用静态方法编译的匿名方法

帮帮我。

Action action = () => { };
action.Method.Isstatic.PrintLine(); // False
action.Target.ToString().PrintLine(); // TestConsole.Prgoram+<>c
action.Target.GetHashCode().PrintLine(); // 58225482
action.Method.ToString().PrintLine(); // Void <Main>b__1_0()

Func<int,int,int> addFunc = (int a,int b) => a + b;
addFunc.Method.Isstatic.PrintLine(); // False
addFunc.Target.ToString().PrintLine(); // TestConsole.Prgoram+<>c
addFunc.Target.GetHashCode().PrintLine(); // 58225482
addFunc.Method.ToString().PrintLine(); // Int32 <Main>b__1_1(Int32,Int32)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)