(一直在学习面对unity编程,最近开始看微软的DotNet文档,挺长见识的,之前没用过属性。)
写给自己看的。

  1. 通常来说应该时private的字段搭配public的属性吧,这样也比较容易理解,通过属性读写字段可以实现对字段的范围的掌控。
  2. 自动属性语法:只写属性,字段由编译器生成,生成的字段应该也是private的吧?
  3. 属性应该都是public的把,可对 set 和 get 访问器提供不同的可访问性。如果set是private的,就不可以通过外部赋值,但是可以通过类内部赋值。
  4. 如果干脆就没有set访问器,那么只能通过构造函数给字段赋值。
  5. set可以替换成init,init应该就是只可以通过init访问器赋值一次。
  6. 属性用了required修饰符后意味着实例该类时必须设置此属性。[SetsRequiredMembers]特性可以修饰构造函数,此特性通知编译器此构造函数设置了所有 required 成员,没有该特性的构造函数不是没用了吗?
  7. 不要将 required 与不可为 null 混淆。无所谓了,required这里基本上已经理解不了了。
  8. 属性无需只返回某个成员字段的值。很好理解,跟函数差不多。
  9. 缓存的计算属性。看了例子后就很好理解,例子在微软的官方C#手册。
  10. 将特性附加到自动实现的属性:比较好理解。
  11. 实现 INotifyPropertyChanged。同样的看了官方的例子后就很好理解了。

除了required那里没有理解,关于C#的属性部分还是比较容易掌握的。

0o0oo