除了类 object 的实例构造函数以外,所有其他的实例构造函数都隐式地包含一个对另一个实例构造函数的调用,该调用紧靠在构造函数体的前面。要隐式调用的构造函数是由构造函数初始值设定项确定的: base(参数列表可选)形式的实例构造函数初始值设定项导致调用直接基类中的实例构造函数。该构造函数是根据参数列表和第 7.4.2 节的重载决策规则选择的。候选实例构造函数集由直接基类中包含的所有可访问实例构造函数组成(包括所有默认构造函数,详见第 10.10.4 节中的定义)。如果此集合为空,或者无法标识单个最佳实例构造函数,就会发生编译时错误。
this(参数列表可选)形式的实例构造函数初始值设定项导致调用该类本身所声明的实例构造函数。构造函数是根据参数列表和第 7.4.2 节的重载决策规则选择的。候选实例构造函数集包括在该类中声明的所有可访问的实例构造函数。如果此集合为空,或者无法标识单个最佳实例构造函数,就会发生编译时错误。如果实例构造函数声明中包含调用构造函数本身的构造函数初始值设定项,则发生编译时错误。
如果一个实例构造函数声明中没有构造函数初始值设定项,将会隐式地添加一个 base() 形式的构造函数初始值设定项。因此,下列形式的实例构造函数声明C(...) {...}
完全等效于C(...): base() {...}
实例构造函数声明中的形参表所给出的参数范围包含该声明的实例构造函数初始值设定项。因此,构造函数初始值设定项可以访问该构造函数的参数。例如:class A
{
public A(int x, int y) {}
}
class B: A
{
public B(int x, int y): base(x + y, x - y) {}
}
实例构造函数初始值设定项不能访问正在创建的实例。因此在构造函数初始值设定项的参数表达式中引用 this 属于编译时错误,就像参数表达式通过简单名称引用任何实例成员属于编译时错误一样。
this(参数列表可选)形式的实例构造函数初始值设定项导致调用该类本身所声明的实例构造函数。构造函数是根据参数列表和第 7.4.2 节的重载决策规则选择的。候选实例构造函数集包括在该类中声明的所有可访问的实例构造函数。如果此集合为空,或者无法标识单个最佳实例构造函数,就会发生编译时错误。如果实例构造函数声明中包含调用构造函数本身的构造函数初始值设定项,则发生编译时错误。
如果一个实例构造函数声明中没有构造函数初始值设定项,将会隐式地添加一个 base() 形式的构造函数初始值设定项。因此,下列形式的实例构造函数声明C(...) {...}
完全等效于C(...): base() {...}
实例构造函数声明中的形参表所给出的参数范围包含该声明的实例构造函数初始值设定项。因此,构造函数初始值设定项可以访问该构造函数的参数。例如:class A
{
public A(int x, int y) {}
}
class B: A
{
public B(int x, int y): base(x + y, x - y) {}
}
实例构造函数初始值设定项不能访问正在创建的实例。因此在构造函数初始值设定项的参数表达式中引用 this 属于编译时错误,就像参数表达式通过简单名称引用任何实例成员属于编译时错误一样。
解决方案 »
- 求助关于c#读写EXCEL的问题
- 高手请帮我:把viewstate传给属性
- C# 同一个程序集的概念?
- 高手讲讲类中方法的重载是什么意思?
- 创建用户控件出现问题
- 100分求一个操作系统课程设计的代码,要求内详,请各位达人帮忙啊,急,
- 关于DateTime 一点问题????
- C#Winform中工具箱里面所有控件全部为灰色
- 我写的一个区域截图功能,怎么截取的图片严重失真??
- 一个严重影响我们饭碗的问题。如何防止C#被ILDASM?
- 如何在程序中调用CSC.exe,将自动生成的cs文件直接编译成dll文件,将其输出到某一指定目录
- *******50分只求一个正则表达式如何写???或别的方法查打字符串*****
---------
如果你在其它类中调用带string 参数的构造函数,它会首先调用TextPrintDocument类的默认构造函数.
public TextPrintDocument()
{
}
二、调用本类的其他构造函数:this()嘿嘿
盗用