Trong lịch sử, khi phát triển trong .Net tôi không thể sao chép tên của biến trong phạm vi lồng nhau. Tuy nhiên, sau khi cập nhật Visual Studio 2019 lên phiên bản 16.4.2 gần đây, tôi nhận thấy rằng các tên biến có thể được nhân đôi trong phạm vi lồng nhau.
Ví dụ:
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
Tại sao điều này đột nhiên được cho phép?
Câu hỏi tiếp theo: Nếu đây là một "tính năng" ngôn ngữ mới, có cách nào để cấu hình Visual Studio tiếp tục ngắt khi một biến được nhân đôi trong phạm vi lồng nhau không?
test
như được đề xuất không có hiệu lực. Bạn có thể thử nó trong Fiddle được liên kết trong câu hỏi.
test
biến vì kiểu dữ liệu là như nhau. thử khai báotest
biến nhưint
vd.var test = 12345;
tôi nghĩ bạn sẽ nhận được lỗi biên dịch. (Tôi chưa thử)