This关键字的作用:
解决当传入参数的名字和类型数据字段的相同时产生的作用域歧义。
构造函数链
1 class Motorcycle 2 { 3 public int driverInterIntensity; 4 public string driverName; 5 //构造函数链 6 public Motorcycle(){} 7 public Motorcycle(int intensity) 8 : this(intensity,""){} 9 public Motorcycle(string name) 10 : this(0,name) {} 11 //这是做所有工作的“主”构造函数 12 public Motorcycle(int intensity ,string name) 13 { 14 if (intonsity > 10) 15 { 16 intensity =10; 17 } 18 driverIntensity = intensity; 19 driverName = name; 20 } 21 }
构造函数链的链接流程
- 通过调用只有单个int的构造函数来创建对象。
- 构造函数将提供的数据转发给主构造函数,并且提供调用者没有提供的其他初始参数。
- 主构造函数把传入的数据赋值给对象的字段数据。
- 控制返回到最初调用的构造函数,并且执行手忙脚乱剩余的代码语句。
常量数据
关键字:const
注:定义常量时必须为常量指定初始值。
只读字段
关键字:readonly
和常量紧密联系的概念是只读字段数据。和常量相似,只读字段不能在赋初始值后改变。然而,和常量不同的是,赋给只读字段的值可以在运行时决定,因此在构造函数作用域中进行赋值是合法的。
静态只读字段
关键字:static readonly
分部类型
使用分部类将构造函数和字段数据转移到全新的 Employee.Internal.cs 文件中。第一步是向当前的类定义中添加partial关键字,再剪切转移到新文件中的代码:
1 // Employee.cs 2 partial class Employee 3 { 4 //方法 5 //属性 6 }
然后,假设已经在项目中插入了新的类文件,将数据字段和构造函数粘贴到新文件中。此外,还必须在类定义中添加partial关键字。例如:
1 // Employee.Internal.cs 2 partial class Employee 3 { //字段数据 4 //构造函数 5 }