Существует два проекта, один из которых предназначен для библиотеки. NET Standard 2.0, а другой - для консольного приложения. NET Core 2.2.
Теперь этот фрагмент кода работает. NET Стандартная библиотека 2.0, но не на. NET Core 2.2.
for (int i = 0; i < 1; i++) {
var y = new int[1].First(i => i == 0); // Conflict i name error here in .NET Core 2.2.
Console.WriteLine("Hello " + y);
}
Я понимаю из этого вопроса , что простые имена не должны иметь разного значения, и, следовательно, даже . NET Стандартная библиотека 2.0 должна выдавать ошибку, но это не так. Почему это несоответствие?
Я пытался сделать tnet fiddle, и, похоже, он работает на. NET Core 3.1 и Roslyn 3.4, но не. NET Framework 4.7.2, что даже более запутанным. Что здесь происходит?