Історично під час розвитку в .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
запропонованого варіанту не впливає. Ви можете спробувати це у Fiddle, пов'язаному у питанні.
test
змінна, оскільки тип даних однаковий. спробуйте оголоситиtest
змінну якint
напр.var test = 12345;
Я думаю, ви повинні отримати помилку компіляції. (Я не пробував)