2011-09-22 32 views

Trả lời

7

Đầu tiên là thuộc tính thực tế. Cái thứ hai chỉ là một trường.

Nói chung, các trường cần được giữ private và là những gì lưu trữ dữ liệu thực tế. Các thuộc tính không thực sự lưu trữ bất kỳ dữ liệu nào, nhưng chúng trỏ đến các trường. Trong trường hợp thuộc tính tự động ở trên, nó sẽ tự động tạo một trường ẩn như _city đằng sau hậu trường để giữ dữ liệu.

Hy vọng điều này sẽ hữu ích!

1

Đầu tiên là thuộc tính CLR, trong khi thứ hai chỉ là trường công khai (không phải thuộc tính).

Trong WPF và Silverlight, ràng buộc không hoạt động với các trường công cộng, nó chỉ hoạt động với các thuộc tính công khai. Đó là một sự khác biệt lớn trong quan điểm của tôi:

//<!--Assume Field is a public field, and Property is a public property--> 
<TextBlock Text="{Binding Field}"/> 
<TextBlock Text="{Binding Property}"/> 

một đầu tiên sẽ không làm việc nhưng điều thứ hai sẽ làm việc.

0

như mellamokb đã nói. loại thứ nhất là tài sản, trình biên dịch sẽ tự động tạo ra chức năng truy cập và lĩnh vực tư nhân như:

private String _city; 
public String City(){ return _city ;} 
..... 

Thuộc tính sử dụng, bạn có thể kiểm soát việc tiếp cận của _city, ví dụ như"

public String City(){ 
doXxxFunction(); 
return _city ; 
} 

vậy, bạn nên luôn sử dụng thuộc tính và đảm bảo tất cả các trường là riêng tư.

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