Исторически при разработке в .Net я не мог дублировать имя переменной во вложенной области видимости. Однако после недавнего обновления Visual Studio 2019 до версии 16.4.2 я заметил, что имена переменных могут дублироваться во вложенной области видимости.
Например:
var test = "hello";
Console.WriteLine(test);
var things = new []{"one", "two", "three"};
things.Select(test => // <- test is duplicated here, normally this breaks compilation
{
Console.WriteLine(test);
return test;
}).ToList();
// output:
// hello
// one
// two
// three
https://dotnetfiddle.net/h85BK4
Почему это вдруг разрешено?
Дополнительный вопрос: если это новая языковая «функция», есть ли способ настроить Visual Studio таким образом, чтобы он продолжал разрываться, когда переменная дублируется во вложенной области?
test
как предлагается, не имеет никакого эффекта. Вы можете попробовать это в Скрипке, связанной в вопросе.
test
переменную, так как тип данных одинаков. попробуйте объявитьtest
переменную как,int
например.var test = 12345;
Я думаю, вы должны получить ошибку компиляции. (Я не пробовал это)