我想从Microsoft.Kinect.JointCollection
类派生一个类。
public class Derived : JointCollection
{
public string NewItem;
public Derived ()
{
}
}
The type 'Microsoft.Kinect.JointCollection' has no constructors defined.
问题是什么,如何解决?
答案 0 :(得分:4)
基类对象始终在任何派生类之前构造。 因此,基类的构造函数在之前执行 派生类的构造函数。
http://msdn.microsoft.com/en-us/library/ms228387%28v=VS.80%29.aspx
Microsoft.Kinect.JointCollection
类不包含公共构造函数[2],因此每当您尝试实例化Derived
时,它都会失败,因为公共构造函数在基类上不可用。
您可以考虑将JointCollection
类与您的派生类包装在一起,并提供适当的方法来在Derived
中访问它,而不仅仅是直接调用JointCollection
上的方法。
答案 1 :(得分:1)
我认为error表示该类只定义了内部构造函数,因此您无法从其他程序集中实例化它。
答案 2 :(得分:0)
问题是你试图从明确设计为禁止这种情况的calss派生(这可以通过使所有构造函数内部/私有来实现)。
解决方案:不要那样做。如果没有信息,为什么要这样做,很难提供替代方案。