2010-03-29 96 views
6

在下面的class(MyClass)的构造函数中,“:base”是什么意思?请解释下面为类MyClass给出的构造函数定义的概念。构造函数定义中的“:base”是什么意思?

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; 
     } 
} 

回答

18

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

通过编写base(data)指示程序使用一个WorkerThread的构造函数,该构造函数以data作为参数。如果你没有这样做,程序会尝试使用默认构造函数 - 一个可以不带参数调用的构造函数。

+6

这基类的构造函数保证*目前构造函数执行之前执行*。 – 2010-03-29 10:02:24

0

这意味着要在效果传递传递给MyClass的构造方法的数据参数通过对基类(的WorkerThread)的构造主叫

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

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

有点像调用

new WorkerThread(data) 
-1

一个罕见的情况下VB可以更清晰......

Public Class MyClass 
    Inherits WorkerThread 

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

End Class 
+0

我不喜欢VB比它更清晰,但事实仍然如此。 – StingyJack 2010-03-29 18:47:45

相关问题