2011-09-22 71 views

回答

7

第一个是一个实际的属性。第二个只是一个领域。

一般来说,应该保留字段private,并且是存储实际数据的东西。属性实际上并不存储任何数据,但它们指向字段。在上面的自动属性的情况下,它会自动生成一个隐藏的字段,如后面的_city来保存数据。

希望这会有所帮助!

1

第一个是CLR属性,第二个只是公共领域(不是属性)。

在WPF和Silverlight中,绑定不适用于公共属性,它只能与公共属性一起使用。这是我认为的一个主要区别:

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

第一个不会工作,但第二个会工作。作为mellamokb说:

0

。第一类是属性,编译器会自动生成访问功能和私人领域,如:

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

使用属性,你可以控制_City的访问,例如”

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

所以,你应该始终使用财产,并确保所有领域是私人的。