Effective C# 之一: 尽可能的使用属性,而不是数据成员
在设计类的成员的时候,尽量适用属性而不是字段(数据成员)。使用属性的优势有以下几点:
1.数据安全性检查:可在给属性赋值时候,进行安全性检查,实时抛出异常
2.属性可以是抽象的:在继承类中进行重写
3.属性可在接口中定义:在继承类中实现。结合第二点,均可以满足类的设计的弹性需求
4.可利用属性进行索引器的定义和适用:经常用在集合类的定义中
5.由于代码内敛的方式被编译器采用,采用属性性能并不比数据成员差多少。
简单代码示例:
另外,通过分析IL,我们可以看出,虽然适用公有数据成员和属性在代码表现形式上一样,但其具体实现却不相同:属性在IL中被编译成get_xx,set_xx的两个方式进行。
浙公网安备 33010602011771号