110,538
社区成员
发帖
与我相关
我的任务
分享
class BaseClass
{
public BaseClass()
{
Console.WriteLine("BaseClass");
}
public BaseClass(string text)
{
Console.WriteLine("BaseClass:" + text);
}
}
class DerviedClass1 : BaseClass
{
public DerviedClass1()
{
Console.WriteLine("DerviedClass1");
}
public DerviedClass1(string text)
{
Console.WriteLine("DerviedClass1:" + text);
}
}
class DerviedClass2 : BaseClass
{
public DerviedClass2()
: this("No Parameter")
{
Console.WriteLine("DerviedClass1");
}
public DerviedClass2(string text)
: base(text)
{
Console.WriteLine("DerviedClass2");
}
}
执行下面的代码
new DerviedClass1();
Console.WriteLine();
new DerviedClass1("1");
Console.WriteLine();
new DerviedClass2();
Console.WriteLine();
new DerviedClass2("2");
输出结果
BaseClass
DerviedClass1
BaseClass
DerviedClass1:1
BaseClass:No Parameter
DerviedClass2
DerviedClass1
BaseClass:2
DerviedClass2
然后你自己理解下
public class Test{
public Test() : this(1){
int b = 1;
}
public Test(int a){
}
}
new Test();
//如果你单步执行 你会看到代码先跳到【Test(): this(1)】
//F11 然后进入 Test(int) 构造器
//执行完成后 再跳回 Test() 继续执行 int b = 1;
public frmMain()
: base()
{
InitializeComponent();
}
public frmMain()
: this(1)
{
InitializeComponent();
}
public frmMain(int a)
{
InitializeComponent();
}