Đối với trường hợp vòng lặp, tôi có thể khai báo chỉ mục bên ngoài câu lệnh for. Ví dụ, thay vìkhai báo biến ngoài vòng lặp foreach
for (int i = 0; i < 8; i++) { }
tôi có thể làm:
int i;
for (i = 0; i < 8; i++) { }
Bây giờ trong so sánh với foreach vòng lặp, tôi phải khai báo các biến bên trong vòng lặp:
foreach (string name in names) { }
Và tôi không thể làm điều gì đó như:
string name;
foreach (name in names) { }
Lý do điều này làm phiền tôi là sau vòng lặp, tôi muốn sử dụng biến "name" một lần nữa. Trong trường hợp vòng lặp foreach biến "name" không thể được sử dụng vì nó nằm ngoài phạm vi foreach, và tôi không thể khai báo một biến khác có cùng tên kể từ khi nó được khai báo trước đó trong cùng một phạm vi.
Bất kỳ ý tưởng nào?
Bạn sẽ sử dụng tên để lặp qua danh sách, tại sao bạn cần tham khảo sau này trong mã của bạn. Tôi nghĩ bạn có thể viết mã để tránh nhu cầu sử dụng như vậy. –
@Shamim Hafiz: Tôi có một trường hợp mà tôi thích một biến có cùng tên như trong vòng lặp foreach. – Naor
Tôi gặp vấn đề tương tự. Tôi sử dụng một vòng lặp foreach bên trong một try-catch và tôi viết vào một bản ghi bên trong cả khối try và catch. Tôi sử dụng biến mục trong vòng lặp foreach bên trong cả hai nhật ký. Tôi đã kết thúc bằng cách sử dụng một biến thể của hai phương pháp đầu tiên của Jon Skeet. – seebiscuit