Storicamente, durante lo sviluppo in .Net non sono riuscito a duplicare il nome della variabile in ambito nidificato. Tuttavia, dopo aver recentemente aggiornato Visual Studio 2019 alla versione 16.4.2 ho notato che i nomi delle variabili possono essere duplicati in ambito nidificato.
Per esempio:
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
Perché questo è improvvisamente permesso?
Domanda di follow-up: se si tratta di una "caratteristica" di un nuovo linguaggio, esiste un modo per configurare Visual Studio per continuare a interrompere quando una variabile viene duplicata in ambito nidificato?
test
come suggerito non ha alcun effetto. Puoi provarlo nel violino collegato alla domanda.
test
variabile poiché il tipo di dati è lo stesso. prova a dichiararetest
variabile comeint
ad es.var test = 12345;
penso che dovresti ricevere un errore di compilazione. (Non l'ho provato)