base关键字的作用为:
1、调用基类上被重写的方法
2、构造派生类时调用基类的构造方法
对于第2点有点疑问,在实例派生类时,首先实例其基类,也就是说,首先要调用其构造方法。这样的话,为什么还要使用base呢?比如
class A
{
public A()
{
System.Console.WriteLine("...");
}
}
class B : A
{
public B() : base()
{
System.Console.WriteLine("!!!");
}
}
class C
{
static void Main()
{
B b = new B();
}
}
一上代码得到的结果为:
...
!!!
和下面的代码效果一样
class A
{
public A()
{
System.Console.WriteLine("...");
}
}
class B : A
{
public B()
{
System.Console.WriteLine("!!!");
}
}
class C
{
static void Main()
{
B b = new B();
}
}
这段代码的结果与使用base关键字的代码结果一样。
为什么还要使用base呢?有什么我没理解到的地方么?
谢谢各位先
1、调用基类上被重写的方法
2、构造派生类时调用基类的构造方法
对于第2点有点疑问,在实例派生类时,首先实例其基类,也就是说,首先要调用其构造方法。这样的话,为什么还要使用base呢?比如
class A
{
public A()
{
System.Console.WriteLine("...");
}
}
class B : A
{
public B() : base()
{
System.Console.WriteLine("!!!");
}
}
class C
{
static void Main()
{
B b = new B();
}
}
一上代码得到的结果为:
...
!!!
和下面的代码效果一样
class A
{
public A()
{
System.Console.WriteLine("...");
}
}
class B : A
{
public B()
{
System.Console.WriteLine("!!!");
}
}
class C
{
static void Main()
{
B b = new B();
}
}
这段代码的结果与使用base关键字的代码结果一样。
为什么还要使用base呢?有什么我没理解到的地方么?
谢谢各位先
解决方案 »
- c# treeView 只载入第一层,点击节点时载入下一层
- 判断注册用户名是否存在出错,错在哪哈?
- 想写一个dll给别的程序调用,该如何实现
- C#访问EXCEL的问题?Microsoft.Office.Interop.Excel.dll 12.0是否兼容Excel 2003?
- C#新手问题,行状态与MERGE()
- C#怎么实现两个EXCEL之间的数据对比?
- 如何自动整理代码?(visual studio 2005的快捷键)
- $$$$$$$$$$$$高分求 工资管理系统!!!!!!!!
- 异常详细信息: System.InvalidOperationException: .Net 数据 SQL 提供程序(System.Data.SqlClient)要求 Microsoft 数据访问组件(MDAC) 2
- listview的使用 求教 大神们
- 有这样做过类似的程序吗?
- 列出我的电脑下的东西
当你需要给参数时就必须base(o),
还可以使用被子类复写的方法base.A();
使用base()可以选择使用父类的某一构造函数