C#构造函数中:this()的作用
通俗来说,可以说是构造函数的继承
(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()的作用的更多相关文章
- Android中自定义样式与View的构造函数中的第三个参数defStyle的意义
零.序 一.自定义Style 二.在XML中为属性声明属性值 1. 在layout中定义属性 2. 设置Style 3. 通过Theme指定 三.在运行时获取属性值 1. View的第三个构造函数的第 ...
- .NET/C# 类构造函数中this的用法 (转)
在C#中this用来指代当前对象,用于当成员函数中的形参名跟成员变量名一致时,进行区分. 但this不仅仅只有这一作用,this还可以如下这样用: class class1 { private int ...
- 探索js原型链和vue构造函数中的奥妙
这篇文章首先会讲到原型链以及原型链的一些概念,然后会通过分析vue的源码,来看一下vue的构造函数是如何被创建的,now we go! 一.什么是原型链? 简单回顾下构造函数,原型和实例的关系: ...
- 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 ...
- 记c#中构造函数中this的用法
今天谈及这个话题,是因为在看别人代码,遇到的.本着知其然还要知其所以然的精神,在网上大肆查找了一遍.得到了一些答案.并在此做一个简单的笔记,以便自己和他人以后查找,与我一同成长进步. 在C#中this ...
- QT构造函数中*parent
程序写的多了,你会发现几乎所有的Qt类的构造函数都会有一个parent参数.这个参数通常是QObject* 或者是 QWidget* 类型的(定义新的类是通常首先初始化为0,在类的实现函数中赋值).很 ...
- php课程 12-39 继承中parent的作用是什么
php课程 12-39 继承中parent的作用是什么 一.总结 一句话总结:PHP5中使用parent::来引用父类的方法.parent:: 可用于调用父类中定义的成员方法. parent::的追溯 ...
- jQuery中$符号的作用
jQuery中$符号的作用 1.查找作为jQuery包装器,利用选择器来选择DOM元素(这个也是最强大的功能) 例如:$("table tr:nth-child(even)") 基 ...
- C++ 中explicit的作用
转载:https://www.cnblogs.com/diligenceday/p/5781408.html C++ 中explicit的作用 explicit作用: 在C++中,explicit ...
随机推荐
- windows的SEH异常处理以及顶层异常处理
前言 windows的SEH结构化异常处理是基于线程的,传统的SEH结构化异常会基于堆栈形成一条包含异常回调函数地址的链(SEH链).而fs:[0](TEB的第一个字段)指向这条链的链头,当有异常发生 ...
- 02 CTF WEB 知识梳理
1. 工具集 基础工具 Burpsuit, Python, FireFox(Hackbar, FoxyProxy, User-Agent Swither .etc) Burpsuit 代理工具,攻击w ...
- Unity API笔记
1. 返回某范围的随机数 Random.Range method. static float Range(float min, float max); returns a float – return ...
- 3D高清电商购物小图标图片_在线商城三维icon图标素材大全
3D高清电商购物小图标图片_在线商城三维icon图标素材大全
- 每天一个linux命令(49):at命令 atrm删除作业,由作业号标识。
atq命令 例如:从现在起三天后的下午四点运行作业at 4pm + 3 days:在July 31上午十点运行作业at 10am July 31:明天上午一点运行作业at 1am tomorrow. ...
- ltp
1.查找文件 find / -name 'filename' 1 2.查找目录 find / -name 'path' -type d 1 3.查找内容 # find .| xargs grep ...
- hugboy源库
=[个人整理的一些源库,均来自网络]= -[Ubuntu]- #阿里源 Ubuntu 20.04 deb http://mirrors.aliyun.com/ubuntu/ focal main re ...
- 关于STM32的可编程电压检测器的使用方法
关于STM32的可编程电压检测器的使用方法 思维导图总览: 代码: 1 #include "sys.h" 2 #include "delay.h" 3 #inc ...
- SpringMVC 环境搭建
SpringMVC 框架环境搭建操作步骤如下: 创建动态 Web 项目 配置 Tomcat 服务器 配置 SpringMVC 前端控制器 <?xml version="1.0" ...
- Django(38)mac安装redis
安装redis 1.使用Homebrew安装Redis brew install redis 执行上述命令后出现以下内容,则成功安装 Download failed: https://mirrors. ...