C# 变量,字段,属性区别
首先,变量是站在程序设计的角度来讲的,所有可以根据类型来定义的标识符,都可以称为变量。比如字符串类型可以定义字符串变量,接口类型可以定义接口变量,变量可以赋值,参与运算等。
字段是站在面向对象的角度来讲,也就是类中定义的,与实体属性相关的我们称为字段。比如,在Customer类的string name表达了Customer的一个属性,有明确的含义,我们就称之为字段,非要说它为变量就称之为成员变量,表示作为类的一个成员。
属性这个概念是一个有点绕的说法。其本质是对字段的封装,通过set和get方法来暴露字段。但形式上和public字段的访问一样,让初学者有些困惑,一般不定义public字段,因为对public而言,字段封装就没有什么意义了。通常情形是,private私有字段,通过封装,提供set和(或)get方法,并可方法中做些处理任务。