Tôi chỉ nhận ra rằng C # bất động sản xây dựng cũng có thể được sử dụng với một tin sửa đổi lần truy cập:
private string Password { get; set; }
Mặc dù điều này là thú vị về mặt kỹ thuật, tôi không thể tưởng tượng được khi nào tôi sẽ sử dụng nó vì một lĩnh vực tư nhân liên quan đến lễ ít hơn :
private string _password;
và tôi không thể tưởng tượng khi tôi sẽ bao giờ cần để có thể nội có được nhưng không thiết lập hoặc thiết lập nhưng không có được một lĩnh vực riêng:
private string Password { get; }
hoặc là
private string Password { set; }
nhưng có lẽ có một trường hợp sử dụng với các lớp lồng nhau / kế thừa hoặc có lẽ trong đó một get / set có thể chứa logic thay vì chỉ trả lại giá trị của thuộc tính, mặc dù tôi có xu hướng giữ các thuộc tính đơn giản và để các phương thức rõ ràng thực hiện bất kỳ logic nào, ví dụ GetEncodedPassword()
.
Có ai sử dụng các thuộc tính riêng tư trong C # vì bất kỳ lý do nào không hay đây chỉ là một trong những cấu trúc mã kỹ thuật có thể có nhưng hiếm khi được sử dụng trong thực tế?
Phụ lục
Những câu trả lời hay, đọc qua chúng tôi đã loại bỏ những cách sử dụng này cho các thuộc tính riêng tư:
- khi các lĩnh vực tư nhân cần được tải một cách lười biếng
- khi các trường riêng cần thêm logic hoặc được tính giá trị
- vì các lĩnh vực riêng tư có thể khó gỡ lỗi
- để "trình bày hợp đồng với chính mình"
- để chuyển đổi nội bộ / đơn giản hóa một thuộc tính được phơi bày như là một phần của tuần tự hóa
- gói các biến toàn cục được sử dụng trong lớp của bạn