Chúng ta thường nói rằng chúng ta nên bảo vệ việc đóng gói bằng cách tạo các phương thức getter và setter (thuộc tính trong C #) cho các trường lớp, thay vì đưa các trường ra thế giới bên ngoài.
Nhưng có nhiều khi một trường chỉ ở đó để giữ một giá trị và không yêu cầu bất kỳ tính toán nào để có được hoặc đặt. Đối với những điều này, tất cả chúng ta sẽ làm số này:
public class Book
{
private string _title;
public string Title
{
get{ return _title; }
set{ _title = value; }
}
}
Chà, tôi có một lời thú nhận, tôi không thể chịu viết tất cả những điều đó (thực sự, nó không phải viết nó, nó phải nhìn vào nó), vì vậy tôi đã đi lừa đảo và sử dụng các lĩnh vực công cộng.
Sau đó, đến C # 3.0 và tôi thấy họ đã thêm các thuộc tính tự động:
public class Book
{
public string Title {get; set;}
}
cái nào gọn gàng hơn, và tôi biết ơn vì điều đó, nhưng thực sự, có gì khác so với việc tạo ra một lĩnh vực công cộng?
public class Book
{
public string Title;
}
prop
đoạn mã làm cho nó nhanh chóng để tạo ra tài sản. Chỉ cần gõ prop
rồi tab.