构造函数定义中“:base”的含义是什么?

时间:2010-03-29 09:45:36

标签: c# .net constructor

以下类(MyClass)的构造函数中“:base ”的含义是什么?请解释下面针对类MyClass给出的构造函数定义背后的概念。

public class MyClass: WorkerThread
{
        public MyClass(object data): base(data) 
        { 
           // some code       

        }
}

public abstract class WorkerThread
{

        private object ThreadData;
        private Thread thisThread;

        public WorkerThread(object data)
        {
            this.ThreadData = data;
        }

        public WorkerThread()
        {
            ThreadData = null;
        }
}

4 个答案:

答案 0 :(得分:19)

基类是WorkerThread。创建MyClass时,必须使用其任何构造函数创建WorkerThread

通过编写base(data),您指示程序使用一个以data作为参数的WorkerThread构造函数。如果没有这样做,程序将尝试使用默认构造函数 - 可以在没有参数的情况下调用它。

答案 1 :(得分:2)

它调用它继承的类的构造函数,并提供相应的参数。

有点像打电话

new WorkerThread(data)

答案 2 :(得分:0)

这意味着您将传递给MyClass构造函数的数据参数传递给基类(WorkerThread)的构造函数,实际调用

public WorkerThread(object data)
{
    this.ThreadData = data;
}

答案 3 :(得分:-1)

一种罕见的情况,VB可能更清晰......

Public Class MyClass
  Inherits WorkerThread

  Public Sub New(data)
    MyBase.New(data)
  End Sub

End Class