Các thuộc tính riêng tư có thể rất hữu ích để gói gọn hành vi của những thứ bên trong lớp của bạn. Chỉ vì chúng là riêng tư không có nghĩa là bạn không nên tận dụng lợi thế của đường cú pháp mà các đặc tính mang lại cho bạn.
Ví dụ đưa ra là một người nghèo, tuy nhiên. Getters tài sản nồi hơi và setters như thế này hầu như luôn luôn là một ý tưởng tồi. Nếu bạn đang sử dụng C # 3.0 trở lên thì thuộc tính tự động là một ý tưởng tốt hơn nhiều:
private string Whatever { get; set; };
Điều này là ngắn hơn, sạch hơn, và dễ đọc hơn nhiều. Trong thực tế, nó chỉ dài hơn việc khai báo biến dự phòng.
Quan trọng nhất là, các thuộc tính tự động có thể được chuyển đổi thành các thuộc tính đầy đủ bất cứ lúc nào mà không thay đổi ngữ nghĩa của phần còn lại của chương trình! Do đó, nếu bạn cần thêm xác nhận hoặc xử lý lỗi, bạn có thể thực hiện dễ dàng.
Vì vậy, tôi luôn nghĩ rằng thật đáng tiếc khi bạn không thể có một thuộc tính chỉ đọc, để thực thi chỉ có thể ghi vào giá trị trong hàm tạo, (tôi thích các loại không thay đổi ) nhưng điều này đã được thêm vào trong C # 6.0 như "Trình khởi tạo thuộc tính tự động", cho phép bạn thực hiện:
private string Whatever { get; } = ...;
hoặc là
private string Whatever { get; };
cùng với
Whatever = ...;
trong các nhà xây dựng.