Historycznie, podczas programowania w .Net nie mogłem powielić nazwy zmiennej w zagnieżdżonym zakresie. Jednak po niedawnej aktualizacji programu Visual Studio 2019 do wersji 16.4.2 zauważyłem, że nazwy zmiennych można powielać w zakresie zagnieżdżonym.
Na przykład:
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
Dlaczego jest to nagle dozwolone?
Dalsze pytanie: jeśli jest to „funkcja” nowego języka, czy istnieje sposób na skonfigurowanie programu Visual Studio, aby kontynuował łamanie, gdy zmienna jest duplikowana w zakresie zagnieżdżonym?
test
zgodnie z sugestią nie ma wpływu. Możesz spróbować w skrzypce połączonym w pytaniu.
test
zmiennej, ponieważ typ danych jest taki sam. spróbuj zadeklarowaćtest
zmienną jakoint
np.var test = 12345;
myślę, że powinieneś dostać błąd kompilacji. (Nie próbowałem tego)