2010-03-29 94 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

相關問題