コンストラクターシグネチャを定義するインターフェースですか? 質問する

コンストラクターシグネチャを定義するインターフェースですか? 質問する

この問題に遭遇したのは今回が初めてなので不思議ですが、

C# インターフェイスでコンストラクターを定義するにはどうすればよいですか?

編集
例が欲しいという人もいました(これは自由時間のプロジェクトなので、はい、ゲームです)

IDrawable
+更新
+描画

更新 (画面の端などをチェック) して自分自身を描画できるようにするには、常に が必要ですGraphicsDeviceManager。そのため、オブジェクトに参照があることを確認したいと思います。これはコンストラクターに属します。

これを書き留めてみて、ここで実装しているのは次のとおりIObservableだと思います。XNA フレームワークを理解していないか、フレームワークが十分に検討されていないかのどちらかのようです。GraphicsDeviceManagerIDrawable

編集
インターフェイスのコンテキストにおけるコンストラクタの定義について、混乱があるようです。インターフェイスはインスタンス化できないため、コンストラクタは必要ありません。私が定義したかったのは、コンストラクタのシグネチャです。インターフェイスが特定のメソッドのシグネチャを定義できるのとまったく同じように、インターフェイスはコンストラクタのシグネチャを定義できます。

ベストアンサー1

できません。時々面倒ではありますが、通常の技術では呼び出すことができません。

私が提案したブログ記事では静的インターフェースこれはジェネリック型の制約でのみ使用できますが、私の意見では非常に便利かもしれません。

インターフェース内でコンストラクターを定義できる場合、クラスの派生に問題が生じるという点が 1 つあります。

public class Foo : IParameterlessConstructor
{
    public Foo() // As per the interface
    {
    }
}

public class Bar : Foo
{
    // Yikes! We now don't have a parameterless constructor...
    public Bar(int x)
    {
    }
}

おすすめ記事