字段和属性

  字段和属性是C#面向对象模式中的两个概念,都属于类的成员。
  字段(field)  用来存储数值或对象的真正实体,简单说是私有变量(不一定是私有...);属性(property) 对字段的封装(也不一定- -) 有get段落和set段落,通常是公开的 ,get段和set段执行过程都是轻量的。

  说不一定是因为通常它们是这么用的 ,但是在不同设计模式和上下文场合 ,字段的私有会造成取值赋值的效率降低 比如你不得不对一个占用64字节的结构体频繁取值赋值 就用公开字段好了...
  属性是个非常奇妙的东西 它包含着写段落和读段落所以又叫读写器正常的意义是field的wapper 因为你可以通过只写get段或set段对字段达到只读和只写的访问控制 甚至可以对get和set加上访问权限修饰符 比如protected get; private set;
  因为get和set段像是两个函数一样 所以你可以在里面写很多奇怪的东西达到不同的设计期望 比如get里可以先判断if (字段==null ) new() return 字段;的这种单例模式设计  set里则可以加上事件触发和有效性判断等逻辑  所以合理的利用属性这种语法对C#程序设计很重要。

 

爱一个人好难,得到一个人好难!
原文地址:https://www.cnblogs.com/ForeverX/p/3415687.html