Históricamente, al desarrollar en .Net, no podía duplicar el nombre de la variable en el ámbito anidado. Sin embargo, después de actualizar recientemente Visual Studio 2019 a la versión 16.4.2, he notado que los nombres de variables pueden duplicarse en un ámbito anidado.
Por ejemplo:
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
¿Por qué se permite esto de repente?
Pregunta de seguimiento: si se trata de una nueva "característica" del lenguaje, ¿hay alguna forma de configurar Visual Studio para que continúe interrumpiéndose cuando una variable se duplica en un ámbito anidado?
test
como se sugiere no tiene ningún efecto. Puede probarlo en el violín vinculado en la pregunta.
test
variable ya que el tipo de datos es el mismo. intente declarartest
variable comoint
p. ej.var test = 12345;
Creo que deberías obtener un error de compilación. (No lo he probado)