Effective C#阅读笔记-1.使用属性(Properties)代替数据成员(Data Member)

本文探讨了为何在C#中使用属性而非数据成员,包括其作为面向对象封装的优势、.NET对属性的广泛支持(如数据绑定和设计时特性)、属性在安全性与线程控制中的作用、以及属性的可继承性与接口实现。建议在公开接口中始终使用属性,以确保灵活性和未来设计变更的可能性。
摘要由CSDN通过智能技术生成

属性(Properties),是对数据成员( Data Member)的封装,内部编译成IL时,是调用的方法,只是给了一个名字叫做属性(Properties);为什么推荐使用属性,有一下几个原因:

1.基于面向对象的思想,对数据多一层封装,更加解耦;在对数据成员赋值或者读取值的时候,可以加上自己的逻辑,逻辑变化的时候,调用地方不用修改,而只是属性内部修改,这个可以认为是一种设计模式;

2..Net对属性的支持远远大于对成员的支持,你可以对属性进行数据绑定,设计时说明等很多数据成员不被支持的内容。例如Web form里面控件都是通过属性来设置更改的;

3.属性内部可以做代码安全性检查,以及线程安全性控制;

public string Name{
       set{
              lock(this){
                     //…
             }
       }
}

4.属性内部实现是方法,所以属性可以是virtual,可以被继承重写覆盖;

5.属性可以是接口成员,被实现类实现;

6.If your type should contain indexed items as part of its interface, you can use indexers (whic

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值