c# 中的base()

来源:百度知道 编辑:UC知道 时间:2024/05/31 16:33:35
在派生类中调用基类构造函数。
// keywords_base2.cs
using System;
public class BaseClass
{
int num;

public BaseClass()
{
Console.WriteLine("in BaseClass()");
}

public BaseClass(int i)
{
num = i;
Console.WriteLine("in BaseClass(int {0})", num);
}
}

public class DerivedClass : BaseClass
{
// 该构造器调用 BaseClass.BaseClass()
public DerivedClass() : base()
{
}

// 该构造器调用 BaseClass.BaseClass(int i)
public DerivedClass(int i) : base(i)
{
}

static void Main()
{
DerivedClass dc = new DerivedClass();
DerivedClass dc1 = new DerivedClass(1);
}
}

/**//*
控制台输出:
in BaseClass()
in BaseClass(1)
*/

如果我在 // 该构造器调用 BaseClass.BaseClass()
public DerivedClass() : ba

base()的意思是调用基类的构造函数......
public DerivedClass() : base() 的意思就是先调用基类的构造函数,然后执行DerivedClass() ‘
如果你改成
public DerivedClass() : base(1) 就看出区别了

默认是子类的空构造,继承父类的空构造。

占用内存多很正常,因为C#必须依托于DotNetFramework才能工作,而DotNetFramework这个玩意就是很耗内存的。