Компилятор C #, разрешающий использование неназначенной локальной переменной в библиотеке классов .NET Standard 2.0 - PullRequest
0 голосов
/ 03 января 2019

Рассмотрим следующий код:

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), приведенный выше код компилируется без каких-либо ошибок. Что здесь происходит?

...