Tôi đã đọc một số cuộc thảo luận về chủ đề này, và có điều tôi không hiểu.Property vs Function (đặc biệt là .NET)
Câu trả lời phổ biến nhất dường như là: sử dụng thuộc tính ReadOnly để trả về dữ liệu được lưu trong bộ nhớ cache, sử dụng hàm để trả về dữ liệu không được lưu trong bộ nhớ cache. Không sử dụng một thuộc tính WriteOnly, gây ra "nó không có ý nghĩa".
Không có lý do hiệu suất cho việc này. Trong IL, MyProperty tồn tại như các phương thức get_MyProperty
và set_MyProperty
. Lý do duy nhất rõ ràng là câu trả lời trên nên được giả định.
Ok, vậy tại sao phải bận tâm với Thuộc tính chỉ đọc? Tại sao không chỉ biến biến Public thành thay vì Riêng tư? Vậy tại sao phải bận tâm với Thuộc tính? Dữ liệu được lưu trong bộ nhớ cache -> Biến công khai, dữ liệu không được lưu trong bộ nhớ cache -> Chức năng, dữ liệu ghi -> Phụ
Hãy quên tất cả những điều trên và sử dụng Thuộc tính làm tính năng tiện dụng? Một 'mục' để Nhận và Đặt dữ liệu. Sử dụng ý thức chung để biết nếu một Nhận sẽ không trả lại dữ liệu được lưu trong bộ nhớ cache (có thể dẫn đến chậm trễ).
-Edit- Tôi thấy mọi người ít nhiều đồng ý rằng Thuộc tính là lựa chọn tốt nhất. Tôi không thể hiểu tại sao tôi lại tìm thấy rất nhiều cuộc thảo luận mà mọi người ủng hộ chống lại các Đặc tính.
Điều gì, chính xác, là câu hỏi của bạn? Đoạn cuối cùng của bạn mâu thuẫn với câu hỏi của bạn hoặc cung cấp câu trả lời của riêng bạn. –
Đoạn cuối cùng của tôi là cung cấp ý kiến của riêng tôi. Tôi đang tìm kiếm sự đồng ý hoặc không đồng ý (với lý do được cung cấp). – Stijn
http://stackoverflow.com/questions/1019571/why-do-we-use-net-properties-instead-of-plain-old-get-set-functions – Jimmy