欢迎进入这篇文章,文章内容为学习C#过程中做的笔记,可能有些内容的逻辑衔接不是很连贯,但还是决定分享出来,由衷的希望可以帮助到你。
笔记内容会持续更新~~
将这四种成语放在一起讲是因为这四种成员都是用来表达数据的。
字段
字段是一种表示与对象或类型关联的变量。字段是类型的成员,一般称为“成员变量”。其中,与对象关联的字段称为“实例字段”,隶属于某个对象,而与类型关联的字段称为“静态字段”,由static修饰,隶属于某个数据类型。
实例字段
实例字段是帮助实例来存储数据的,实例字段的组合就表达了这个对象当前的状态。
静态字段
静态字段是用来表示这个类型当前的状态的。
属性
属性是一种用于访问对象或类型的特征的成员,特征反映了状态。从命名上来看,字段更偏向于实例对象在内存中的布局,属性更偏向于反映现实世界对象的特征。属性是由字段(Get/Set方法)演变而来的,过程如下:
代码是没有问题的,但是很不符合常识,正常学生是不可能会有200岁的,就想出了另外一个方法:
通过这样的方式,字段可以被保护起来,输入一些不合法的值,系统会抛出异常做出提醒。但是可以看到,这种写法还是有点儿冗长,因此微软发明出来了属性这种成员。
通过这种方式,创建好的student实例又可以直接.Age,回归了方便直观。属性本质就是一个“语法糖”,它把深层次复杂的东西改变了,其实执行Set、Get的内部,也还是调用了Set_Age和Get_Age方法。
属性的声明
属性的声明分为完整的声明和简易的声明,首先介绍完整的声明:输入“propfull”后按“tab”键,ide即可自动地生成属性的默认格式。
如图已经生成好了实例属性,继续使用快捷键生成静态属性。
介绍完了完整声明再介绍下简易声明,简易声明在功能上与一个共有的字段是完全一样的,是不受保护的,好处就是声明起来比较容易,代码比较短,一般使用就是为了传递数据的。声明的方式就是输入“prop”后按“tab”键即可,不用输入“full”了。
总结一下属性与字段的关系,一般情况下它们都用于表示实体的状态,属性大多数情况下都是字段的包容器,建议永远使用属性来暴露字段,即字段永远都是private或protected的。
索引器
索引器使对象能够用与数组相同的方式进行索引。索引器使用的较少,先不过多赘述。
常量
常量的概念,在学习笔记#4中简单介绍过。常量是表示常量值的类成员,常量隶属于类型而不是对象。
此处的常量是局部常量,下面介绍下成员常量,两种变量需要做出区分。
像这里的PI,它是Math类的成员,是属于类的,所以是成员常量。