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?
testcomo se sugiere no tiene ningún efecto. Puede probarlo en el violín vinculado en la pregunta.
testvariable ya que el tipo de datos es el mismo. intente declarartestvariable comointp. ej.var test = 12345;Creo que deberías obtener un error de compilación. (No lo he probado)