1

我想从类派生一个Microsoft.Kinect.JointCollection类。

public class Derived : JointCollection 
{
    public string NewItem;

    public Derived ()
    {

    }
}

错误:

The type 'Microsoft.Kinect.JointCollection' has no constructors defined.

有什么问题,我该如何解决?

4

3 回答 3

4

基类对象总是在任何派生类之前构造。因此,基类的构造函数在派生类的构造函数之前执行。

http://msdn.microsoft.com/en-us/library/ms228387%28v=VS.80%29.aspx

该类Microsoft.Kinect.JointCollection不包含公共构造函数 [ 2 ],因此无论何时尝试实例化Derived它都会失败,因为基类上没有公共构造函数。

您可以考虑用派生类包装JointCollection该类,并提供适当的方法来访问它,Derived这只不过是JointCollection直接调用方法而已。

于 2012-07-08T18:17:28.317 回答
1

我认为该错误意味着该类仅定义了一个内部构造函数,因此您无法从不同的程序集中对其进行实例化。

于 2012-07-08T18:16:06.310 回答
0

问题是您试图从明确设计为禁止这种情况的 cals 派生(这可以通过将所有构造函数设为内部/私有来完成,例如)。

解决方案:不要那样做。如果没有您为什么要这样做的信息,就很难提供替代方案。

于 2012-07-08T18:16:19.340 回答