2011-10-18 75 views
0

準確地說這個代碼:編譯錯誤說在這種情況下base的使用是無效的。爲什麼我不能在繼承中使用BASE

public class UCMComboBoxCellType : FarPoint.Win.Spread.CellType.ComboBoxCellType 
{ 
    public UCMComboBoxCellType() 
    { 
     base(); 
     this.ListWidth = 0; 
    } 
} 

但是爲什麼?我無法弄清楚。

回答

8

在C#構造函數連鎖這樣的:

public UCMComboBoxCellType() : base() 
{   
    this.ListWidth = 0; 
} 

你試過什麼是Java的方式。因爲你不

public class UCMComboBoxCellType : FarPoint.Win.Spread.CellType.ComboBoxCellType 
{ 
    public UCMComboBoxCellType() : base() 
    { 
     this.ListWidth = 0; 
    } 
} 
+0

雖然沒有意義。如果基類具有無參數構造函數,它將隱式調用。 – Joe

+0

謝謝。是的,這是Java :)語法!句法! – Bohn

+0

@Joe:爲什麼?以及我想在我的代碼中使用這個新類而不是之前使用過的ComboBoxCellType類。所以它不以這種方式工作? – Bohn

1

試試這個。

如果您需要調用基類參數的構造函數,你這樣做,像這樣:

public MyClass(string msg) 
    : base(msg) 
{ 
... 
} 

但是在參數的情況下,就沒有必要 - 它被暗示派生構造函數會調用首先是基類構造函數。

相關問題