C#属性笔记
(一直在学习面对unity编程,最近开始看微软的DotNet文档,挺长见识的,之前没用过属性。)
写给自己看的。
- 通常来说应该时private的字段搭配public的属性吧,这样也比较容易理解,通过属性读写字段可以实现对字段的范围的掌控。
- 自动属性语法:只写属性,字段由编译器生成,生成的字段应该也是private的吧?
- 属性应该都是public的把,可对 set 和 get 访问器提供不同的可访问性。如果set是private的,就不可以通过外部赋值,但是可以通过类内部赋值。
- 如果干脆就没有set访问器,那么只能通过构造函数给字段赋值。
- set可以替换成init,init应该就是只可以通过init访问器赋值一次。
- 属性用了required修饰符后意味着实例该类时必须设置此属性。[SetsRequiredMembers]特性可以修饰构造函数,此特性通知编译器此构造函数设置了所有 required 成员,没有该特性的构造函数不是没用了吗?
- 不要将 required 与不可为 null 混淆。无所谓了,required这里基本上已经理解不了了。
- 属性无需只返回某个成员字段的值。很好理解,跟函数差不多。
- 缓存的计算属性。看了例子后就很好理解,例子在微软的官方C#手册。
- 将特性附加到自动实现的属性:比较好理解。
- 实现 INotifyPropertyChanged。同样的看了官方的例子后就很好理解了。
除了required那里没有理解,关于C#的属性部分还是比较容易掌握的。
0o0oo