【发布时间】:2016-01-26 16:46:55
【问题描述】:
我正在运行 Visual Studio 2015 Enterprise、.NET 4.6,并且我编写了一些依赖静态委托的代码。我从this 问题中运行了确切的代码,但我得到“错误”:
static void Main(string[] args)
{
Action<string> actionMethod = s => { Console.WriteLine("My Name is " + s); };
// Always false
Console.WriteLine(actionMethod.Method.IsStatic);
Console.Read();
}
这是一个错误吗?还是 C# 不保证没有非本地依赖的 lambda 是静态的?
是否有解决方法来确定 lambda/delegate 是否具有非本地依赖项?我的目标是知道 lambda 是否捕获了它的封闭变量/使用了闭包。
【问题讨论】:
-
请参阅Delegate caching behavior changes in Roslyn,了解为何进行此更改。
标签: c# .net static delegates visual-studio-2015