CollectionBase抽象类中引用型属性List浅析 为何不为null

本文解释了CollectionBase抽象类如何实现IList接口,并通过List属性而非字段来避免实例化问题。作者通过添加get方法使List属性能够返回当前类的对象实例。

         CollectionBase是一个抽象类,实现了IList接口,并在类结构中定义了IList类型的属性List.  原语句为:

        我以前一直有个误区,就是忽略了这里的List是一个属性而不是一个字段。注意get { return this;} 该语句返回本类对象,即继承抽象类的类的对象。加入这个类的类名为Animals:CollectionBase  那么就返回Animals的对象。我以前一直搞不懂为什么List为被实例化,它应该为null,在Animals类的成员函数中如果使用语句:List.Add();的话,就是不合理的,为此自己还做了大把测试。最后,我给自己做测试的接口型成员加上了同上的get { return this;}语句后,程序就不报错了。由此得出属性的功能真的十分强大啊。直接把List实例化了。这体现了属性的一大优势。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值