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
// 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这个玩意就是很耗内存的。