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 } 

转载于:https://www.cnblogs.com/chenmoit/archive/2012/11/08/2759830.html

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

  1. .net体系结构——C#高级编程第一章

    C#语言不能孤立的使用,而必须和.Net Framework一起考虑.C#编译器专门用于.Net,这表示用C#编写的所有代码总是在.Net Framework中运行.对于C#语言来说,C#的结构和方法 ...

  2. UNIX环境高级编程-第一章

    1.UNIX体系结构: 严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.我们通常将这种软件称为内核,因为它相对较小,而且位于环境的核心.图1-1显示了UNIX系统的体 ...

  3. 【读书笔记】C#高级编程 第一章

    这一章主要就是一个大体的介绍. 有几个概念需要注意下. 1: CTS: Common Tpye System 通用类型系统. .Net平台有多种语言,比如用VB.NET 写了一个类,然后C#需要继承这 ...

  4. android 4 高级编程 第一章摘

    2019独角兽企业重金招聘Python工程师标准>>> android不再是一个纯粹的手机平台,android能为越来越多的硬件类型提供一个平台,例如平板电脑和电视. Linux内核 ...

  5. python数据符号函数等一切皆对象_第一章:Python高级编程-Python一切皆对象

    第一章:Python高级编程-Python一切皆对象 Python3高级核心技术97讲 笔记 1. Python一切皆对象 1.1 函数和类也是对象,属于Python的一等公民 "" ...

  6. 《C#高级编程》笔记系列第一弹-开篇

    虽然以前做过的C#项目也不少了,做过ASP.NET的BS架构的,也做过Winform的CS架构.有一天一位同事给我们看了下面的一个简单的Demo:     public class MainTest ...

  7. android高级编程-android高级应用

    android高级应用>>> 第一阶段 程序员基本素质养成 程序员所需要具备的12条职业素质 让学员初步了解和审视自己所应该具备的职业素质.并且我们会在授课中随时训练和贯彻这样的素质 ...

  8. Oracle SQL高级编程——分析函数(窗口函数)全面讲解

    Oracle SQL高级编程--分析函数(窗口函数)全面讲解 注:本文来源于:<Oracle SQL高级编程--分析函数(窗口函数)全面讲解> 概述 分析函数是以一定的方法在一个与当前行相 ...

  9. 《UNIX环境高级编程(第3版)》——1.7 出错处理

    本节书摘来自异步社区<UNIX环境高级编程(第3版)>一书中的第1章,第1.7节,作者:[美]W. Richard Stevens , Stephen A.Rago著,更多章节内容可以访问 ...

  10. OC高级编程——深入block,如何捕获变量,如何存储在堆上

    OC高级编程--深入block,如何捕获变量,如何存储在堆上 首先先看几道block相关的题目 这是一篇比较长的  博文 ,前部分是block的测试题目,中间是block的语法.特性,block讲解b ...

最新文章

  1. 算法与数据结构--图的实现、基本操作及应用
  2. WIN7 WIN8 笔记本无线网卡MAC地址修改
  3. 20200207_Dontla_MBTI第二步基本分析报告((ISTJ))
  4. Bash中的whereis
  5. idea解决lombok注解失效问题
  6. 你知道IT行业里哪种岗位女生最多吗?
  7. 高通工具QXDM、QCAT和QPST关系及功能
  8. 惠普服务器装系统ESXI,在惠普服务器上安装ESXI 5.5卡在LSI_MR3.V00的解决方案
  9. 后端开发面试自我介绍_java开发面试自我介绍
  10. 二进制算法问题解析——1000瓶药水,1瓶有毒药,几只小白鼠能够找出?
  11. JS严格模式(use strict)
  12. 游戏出海行业现状概况
  13. 个人网站博客完美添加谷歌广告增加收入详细步骤
  14. 现在应该继续投资公链?还是投资应用级协议?
  15. 国内安装oh-my-zsh
  16. 最大公因数及其求解算法(GCD)
  17. Linux标识第2个扩展分区,精益创业模式与Get Big Fast模式、火箭发射思维模式,对创业假定的不同在于它认为( )。...
  18. c语言 rpg游戏,浅谈RPG游戏设计(一)
  19. GET POST 区别!别听他们扯犊子,越看越气人
  20. 字是人的脸,可我就是写不好

热门文章

  1. git commit查找提交的关键字
  2. 会议升降计算机主机,升降式无纸化多媒体会议系统
  3. 北京林业大学计算机复试难度,北京林业大学考研难吗?一般要什么水平才可以进入?...
  4. mysql 触发器_MySQL入门之触发器
  5. JS高级——JSON、数据存储学习笔记
  6. LeetCode 1869. 哪种连续子字符串更长
  7. LeetCode 1700. 无法吃午餐的学生数量(队列模拟 / 不模拟)
  8. 基于sklearn的LogisticRegression二分类实践
  9. LeetCode 623. 在二叉树中增加一行(BFS/DFS)
  10. LeetCode 342. 4的幂(位运算)