Secara historis, ketika berkembang di .Net saya tidak bisa menduplikasi nama variabel dalam lingkup bersarang. Namun, setelah baru-baru ini memperbarui Visual Studio 2019 ke versi 16.4.2 saya perhatikan bahwa nama variabel dapat diduplikasi dalam lingkup bersarang.
Sebagai contoh:
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
Mengapa ini tiba-tiba diizinkan?
Pertanyaan tindak lanjut: Jika ini adalah "fitur" bahasa baru, apakah ada cara untuk mengkonfigurasi Visual Studio untuk terus istirahat ketika variabel diduplikasi dalam lingkup bersarang?
test
seperti yang disarankan tidak berpengaruh. Anda dapat mencobanya di Fiddle yang ditautkan dalam pertanyaan.
test
variabel yang sama karena tipe data sama. coba mendeklarasikantest
variabel sebagaiint
contoh.var test = 12345;
saya pikir Anda harus mendapatkan kesalahan kompilasi. (Saya belum mencobanya)