通俗来说,可以说是构造函数的继承

(1) :this()用来继承无参时的构造函数,例如下面代码

    static void Main(string[] args)
{
AA aA = new AA("c","d");
Console.WriteLine(aA.aa);
Console.WriteLine(aA.bb);
Console.WriteLine(aA.cc);
Console.WriteLine(aA.dd);
Console.WriteLine(aA.ee); Console.ReadKey();
}
}
class AA
{
public string aa="aa 未初始化";
public string bb= "bb 未初始化";
public string cc= "cc未初始化";
public string dd= "dd 未初始化";
public string ee= "ee 未初始化";
public AA(string c,string d):this()
{
this.cc = c;
this.dd = d;
}
public AA()
{
this.aa = "a";
this.bb = "b";
}
}

类AA的构造过程为,先构造无参的AA(),然后再对应参数的构造函数,显示结果为

(2)  :this(para)

如果我们要继承有参的构造函数,则需要构造函数签名的时候就初始化

如下面代码

 class Program
{
static void Main(string[] args)
{
AA aA = new AA("c","d");
Console.WriteLine(aA.aa);
Console.WriteLine(aA.bb);
Console.WriteLine(aA.cc);
Console.WriteLine(aA.dd);
Console.WriteLine(aA.ee); Console.ReadKey();
}
}
class AA
{
public string aa="aa 未初始化";
public string bb= "bb 未初始化";
public string cc= "cc未初始化";
public string dd= "dd 未初始化";
public string ee= "ee 未初始化";
public AA(string c,string d):this("e") //此处初始化了一个参数
{
this.cc = c;
this.dd = d;
}
public AA()
{
this.aa = "a";
this.bb = "b";
}
//此处是新的带一个参数的构造函数
public AA(string e)
{
this.ee = e;
}
}

此代码会优先构造AA(string e)的构造函数,然后继续构造对应的构造函数

运行结果为

C#构造函数中:this()的作用的更多相关文章

  1. Android中自定义样式与View的构造函数中的第三个参数defStyle的意义

    零.序 一.自定义Style 二.在XML中为属性声明属性值 1. 在layout中定义属性 2. 设置Style 3. 通过Theme指定 三.在运行时获取属性值 1. View的第三个构造函数的第 ...

  2. .NET/C# 类构造函数中this的用法 (转)

    在C#中this用来指代当前对象,用于当成员函数中的形参名跟成员变量名一致时,进行区分. 但this不仅仅只有这一作用,this还可以如下这样用: class class1 { private int ...

  3. 探索js原型链和vue构造函数中的奥妙

    这篇文章首先会讲到原型链以及原型链的一些概念,然后会通过分析vue的源码,来看一下vue的构造函数是如何被创建的,now we go! 一.什么是原型链? 简单回顾下构造函数,原型和实例的关系:   ...

  4. c#中@标志的作用 C#通过序列化实现深表复制 细说并发编程-TPL 大数据量下DataTable To List效率对比 【转载】C#工具类:实现文件操作File的工具类 异步多线程 Async .net 多线程 Thread ThreadPool Task .Net 反射学习

    c#中@标志的作用   参考微软官方文档-特殊字符@,地址 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/toke ...

  5. 记c#中构造函数中this的用法

    今天谈及这个话题,是因为在看别人代码,遇到的.本着知其然还要知其所以然的精神,在网上大肆查找了一遍.得到了一些答案.并在此做一个简单的笔记,以便自己和他人以后查找,与我一同成长进步. 在C#中this ...

  6. QT构造函数中*parent

    程序写的多了,你会发现几乎所有的Qt类的构造函数都会有一个parent参数.这个参数通常是QObject* 或者是 QWidget* 类型的(定义新的类是通常首先初始化为0,在类的实现函数中赋值).很 ...

  7. php课程 12-39 继承中parent的作用是什么

    php课程 12-39 继承中parent的作用是什么 一.总结 一句话总结:PHP5中使用parent::来引用父类的方法.parent:: 可用于调用父类中定义的成员方法. parent::的追溯 ...

  8. jQuery中$符号的作用

    jQuery中$符号的作用 1.查找作为jQuery包装器,利用选择器来选择DOM元素(这个也是最强大的功能) 例如:$("table tr:nth-child(even)") 基 ...

  9. C++ 中explicit的作用

    转载:https://www.cnblogs.com/diligenceday/p/5781408.html C++ 中explicit的作用   explicit作用: 在C++中,explicit ...

随机推荐

  1. Truncate用法详解

    前言: 当我们想要清空某张表时,往往会使用truncate语句.大多时候我们只关心能否满足需求,而不去想这类语句的使用场景及注意事项.本篇文章主要介绍truncate语句的使用方法及注意事项. 1.t ...

  2. [xml模块、hashlib模块、subprocess模块、os与sys模块、configparser模块]

    [xml模块.hashlib模块.subprocess模块.os与sys模块.configparser模块] xml模块 XML:全称 可扩展标记语言,为了能够在不同的平台间继续数据的交换,使交换的数 ...

  3. 简单对比vue2.x与vue3.x响应式及新功能

    简单对比vue2.x与vue3.x响应式 对响应方式来讲:Vue3.x 将使用Proxy ,取代Vue2.x 版本的 Object.defineProperty. 为何要将Object.defineP ...

  4. 快速熟悉windows操作

    快捷键 win + E : 打开我的电脑 Ctrl+Shift+Esc:打开资源管理器 Alt +F4 :关闭当前窗口 Win + R:打开命令窗口 DOS 命令 打开CMD 的方式 Win+R:输入 ...

  5. Ansible_编写循环和条件任务

    一.利用循环迭代任务 1️⃣:Ansible支持使用loop关键字对一组项目迭代任务,可以配置循环以利用列表中的各个项目.列表中各个文件的内容.生成的数字序列或更为复杂的结构来重复任务 1.简单循环 ...

  6. 云计算OpenStack---维护及错误排查(13)

    错误一:删除僵尸卷 在openstack dashboard中正常删除实例,未删除卷,然后重启了服务器,出现BUG,卷被附加给了'NONE',并且无法删除,无法更新. 既然log中已经提示无法删除卷的 ...

  7. 单片机编程时易错总结 20181015 项目:3060-A

    3060-A的调试过程中: 20181015 V1.30 A.遇到问题: RS232与LY3023的通信总是自己停止  主程序依旧执行 此版本进行如下修改: 1.RS232用的串口1关闭DMA传送   ...

  8. C语言进阶日志二

    1.一个功能模块最好使用一个文件夹包含 2.基本就需要几个文件,比如定时器取反  LED: bsp_led.c 和 bsp_led.h : 包含你需要的led外设GPIO的初始化代码 led_it.c ...

  9. esp项目,

    http://www.cirmall.com/circuit/6012/%E6%99%BA%E8%83%BD%E5%8C%96%E7%A7%8D%E8%8A%B1%E7%AE%80%E6%98%93% ...

  10. Angular环境搭建及简单体验

    一.安装开发环境 npm install -g typescript npm install -g @angular/cli 二.创建hello-world项目 创建项目 ng new angular ...