Historiquement, lors du développement en .Net, je ne pouvais pas dupliquer le nom de la variable dans la portée imbriquée. Cependant, après avoir récemment mis à jour Visual Studio 2019 vers la version 16.4.2, j'ai remarqué que les noms de variables peuvent être dupliqués dans une portée imbriquée.
Par exemple:
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
Pourquoi est-ce soudainement autorisé?
Question de suivi: s'il s'agit d'une nouvelle "fonctionnalité" de langue, existe-t-il un moyen de configurer Visual Studio pour qu'il continue à se rompre lorsqu'une variable est dupliquée dans la portée imbriquée?
testcomme suggéré n'a aucun effet. Vous pouvez l'essayer dans le violon lié dans la question.
testvariable car le type de données est le même. essayez de déclarer latestvariable commeintpar exemple.var test = 12345;je pense que vous devriez obtenir une erreur de compilation. (Je ne l'ai pas essayé)