Рассмотрим следующий код:
public static void foo(System.Reflection.Emit.ILGenerator il)
{
System.Reflection.Emit.Label label;
il.MarkLabel(label);
}
В библиотеке классов .Net framework или Console App код вызовет ошибку компилятора:
Ошибка CS0165 Использование неназначенной локальной переменной 'label'
Однако, когда я создаю библиотеку классов .Net Standard 2.0 в Visual Studio 2017 (добавить пакет nuget System.Reflection.Emit.ILGeneration 4.3.0), приведенный выше код компилируется без каких-либо ошибок. Что здесь происходит?