考虑以下代码:
public static void foo(System.Reflection.Emit.ILGenerator il)
{
System.Reflection.Emit.Label label;
il.MarkLabel(label);
}
在.Net框架类库或控制台应用程序中,代码将导致编译器错误:
错误CS0165使用未分配的局部变量'label'
但是,当我在Visual Studio 2017中创建.Net Standard 2.0类库(添加nuget包System.Reflection.Emit.ILGeneration 4.3.0)时,以上代码可以正确编译。这是怎么回事?