2011-01-15 27 views
5

tôi đã cố gắng để làm điều này:Thuộc tính tự động triển khai có tập hợp riêng không?

public int Property {get; private set;} 

Nó nhấn mạnh "thiết lập" và nói rằng điều này:

tự động thực hiện accessor không bao giờ đặt

Nó cho phép tôi biên dịch nhưng tôi tự hỏi nếu điều này ảnh hưởng đến bất cứ điều gì hoặc thỏa thuận với nó là gì?

Trả lời

11

Những gì bạn có là cú pháp hợp lệ. Bạn đang nhận được cảnh báo vì không có gì là thiết lập một giá trị cho thuộc tính (tức là setter không được sử dụng ở bất kỳ đâu).

Nếu không có gì đang sử dụng trình đặt, thì thuộc tính sẽ luôn có giá trị mặc định, trong trường hợp đó bạn nên đặt câu hỏi về giá trị của việc có thuộc tính ở vị trí đầu tiên.

4

Đó chỉ là cảnh báo trình biên dịch không phải là lỗi. Nó chỉ nói với bạn rằng bạn không bao giờ sử dụng setter bên trong lớp.

1

Trình thiết lập là riêng tư và trình biên dịch có thể kiểm tra việc sử dụng nó trong lớp hiện tại. Cảnh báo đã được tạo vì bạn không bao giờ đặt giá trị vào thuộc tính đó.

Các vấn đề liên quan