2011-10-18 57 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) 
{ 
... 
} 

但是在参数的情况下,就没有必要 - 它被暗示派生构造函数会调用首先是基类构造函数。

相关问题