《C#与.net高级编程》——第一支柱:C#的封装

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 }
复制代码

构造函数链的链接流程

  1. 通过调用只有单个int的构造函数来创建对象。
  2. 构造函数将提供的数据转发给主构造函数,并且提供调用者没有提供的其他初始参数。
  3. 主构造函数把传入的数据赋值给对象的字段数据。
  4. 控制返回到最初调用的构造函数,并且执行手忙脚乱剩余的代码语句。

常量数据

关键字: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 } 
posted @   Charlie Jin  阅读(614)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示