使用属性代替可访问的数据成员
如果大家还在类型中定义公有的数据成员,或者还在手工添加get和set方法,请赶快停下来。属性在使我们可以将数据成员暴露为公有接口的同时,还为我们提供了在面向对象环境中所期望的封装。在C#中,属性(property)是这样一种语言元素:它们在被访问的时候看起来好像是数据成员,但他们却是用方法实现的。
在C#中,属性是采用方法来实现的,那么属性也就就有方法所具有的全部功能。
1、属性可以实现虚属性
1 public class Customer
2 {
3 public virtual string Name { get; set; }
4 }
2、属性也可以实现为抽象属性,或者作为接口定义的一部分
3、属性还能添加多线程支持