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クラスにはパブリック コンストラクター [ 2Derived ] が含まれていないため、基本クラスでパブリック コンストラクターを使用できないため、インスタンス化を試みるたびに失敗します。

JointCollectionクラスを派生クラスでラップし、それにアクセスするための適切なメソッドを提供することを検討できます。これは、メソッドを直接Derived呼び出すだけです。JointCollection

于 2012-07-08T18:17:28.317 に答える
1

エラーは、クラスに内部コンストラクターしか定義されていないため、別のアセンブリからインスタンス化できないことを意味すると思います。

于 2012-07-08T18:16:06.310 に答える
0

問題は、これを禁止するように明示的に設計された calss から派生させようとしていることです (これは、たとえば、すべてのコンストラクターを内部/プライベートにすることで実行できます)。

解決策: そうしないでください。なぜそうしたいのかという情報がなければ、代替案を提示するのは困難です。

于 2012-07-08T18:16:19.340 に答える