GT C Sharp cơ bản – Bài 14 : Chương 13: Phạm vi biến cục bộ
Chương 13: Phạm vi biến cục bộ
Tác giả: Sưu tầm
Khái quát
Trong C#, các biến cục bộ chỉ có thể được đặt tên mà nó cho phép chúng được xác định duy nhất trong một phạm vi nhất định. Nếu một tên có nhiều hơn một nghĩa trong một phạm vi và không có cách nào để làm tên đó trở thành một nghĩa, thì khai báo ở trong cùng của tên là lỗi và phải được thay đổi. Hãy xem xét đoạn mã sau:
using System;
class MyObject {
public MyObject(int x, int y) {
this.x = x;
this.y = y;
}
int x;
int y;
}
Trong cấu tử, x tham chiếu đến tham số x bởi vì các tham số có mức ưu tiên cao hơn các biến thành phần. Để truy xuất biến x của một thể hiện, nó phải được thêm this. vào trước, điều này cho biết rằng nó phải là một biến thể hiện.
Cách tổ chức như trên là được ưa thích hơn việc đổi tên các tham số của cấu tử hay các biến thành phần để tránh sự xung đột về tên.
Trong tình huống sau không có cách nào để đặt tên cả hai biến, và do đó một khai báo bên trong là một lỗi:
// error
using System;
class MyObject {
public void Process() {
int x = 12;
for (int y = 1; y < 10; y++) {
// no way to name outer x here.
int x = 14;
Console.WriteLine(“x = {0}”, x);
}
}
}
Bởi vì việc khai báo x ở bên trong sẽ che khai báo x ở bên ngoài, điều này là không được cho phép.
C# có hạn chế này để cải thiện mã có thể đọc và sửa đổi. Nếu hạn chế này không được sử dụng, thì có thể gây khó khăn cho bạn trong việc xác định phiên bản nào của biến đang được sử dụng – hoặc thậm chí có nhiều phiên bản – bên trong một phạm vi lồng nhau.