Công cụ sửa đổi truy cập C#
Công cụ sửa đổi quyền truy cập
Đến bây giờ, bạn đã khá quen thuộc với từ khóa public
xuất hiện trong nhiều ví dụ của chúng tôi:
public string color;
Từ khóa public
là một công cụ sửa đổi truy cập , được sử dụng để đặt cấp độ truy cập/mức độ hiển thị cho các lớp, trường, phương thức và thuộc tính.
C# có các công cụ sửa đổi truy cập sau:
Modifier | Description |
---|---|
public |
The code is accessible for all classes |
private |
The code is only accessible within the same class |
protected |
The code is accessible within the same class, or in a class that is inherited from that class. You will learn more about inheritance in a later chapter |
internal |
The code is only accessible within its own assembly, but not from another assembly. You will learn more about this in a later chapter |
Ngoài ra còn có hai sự kết hợp: protected internal
và private protected
.
Hiện tại, hãy tập trung vào các công cụ sửa đổi public
và private
.
Công cụ sửa đổi riêng tư
Nếu bạn khai báo một trường có công cụ sửa đổi truy cập private
, thì nó chỉ có thể được truy cập trong cùng một lớp:
Ví dụ
class Car
{private string model = "Mustang"; static void Main(string[] args)
{Car myObj = new Car(); Console.WriteLine(myObj.model);
}}
Đầu ra sẽ là:
Mustang
Nếu bạn cố gắng truy cập nó bên ngoài lớp học, sẽ xảy ra lỗi:
Ví dụ
class Car { private string model = "Mustang"; } class Program { static void Main(string[] args) { Car myObj = new Car(); Console.WriteLine(myObj.model); } }
Đầu ra sẽ là:
'Car.model' is inaccessible due to its protection level
The field 'Car.model' is assigned but its value is never used
Công cụ sửa đổi công khai
Nếu bạn khai báo một trường bằng công cụ sửa đổi truy cập public
thì tất cả các lớp đều có thể truy cập được trường đó:
Ví dụ
class Car { public string model = "Mustang"; } class Program { static void Main(string[] args) { Car myObj = new Car(); Console.WriteLine(myObj.model); } }
Đầu ra sẽ là:
Mustang
Tại sao truy cập công cụ sửa đổi?
Để kiểm soát khả năng hiển thị của các thành viên lớp (mức độ bảo mật của từng lớp và thành viên lớp).
Để đạt được " Đóng gói " - đó là quá trình đảm bảo rằng dữ liệu "nhạy cảm" được ẩn khỏi người dùng. Điều này được thực hiện bằng cách khai báo các trường là private
. Bạn sẽ tìm hiểu thêm về điều này trong chương tiếp theo.
Lưu ý: Theo mặc định, tất cả thành viên của một lớp đều ở private
nếu bạn không chỉ định công cụ sửa đổi quyền truy cập:
Ví dụ
class Car { string model; // private string year; // private }