1

重複の可能性:
コンストラクターの署名を定義するインターフェイス?

インターフェイスでメソッドとプロパティを宣言し、それを実装するクラスにこれらのメソッドとプロパティを実装するように強制できます。同様に、特定のインターフェースを実装するすべてのクラスが常にパラメーター化されたコンストラクターを持つ必要があるという規則を課すことは可能ですか?

これが可能かどうかはわかりません。ちょっとした考え。

ありがとう

4

3 に答える 3

4

同様に、特定のインターフェースを実装するすべてのクラスが常にパラメーター化されたコンストラクターを持つ必要があるという規則を課すことは可能ですか?

いいえ、インターフェイス宣言ではありません。

代わりに抽象クラスを作成し、パラメーター化されたコンストラクターを持つことbaseができます。すべての実装型はコンストラクターを継承し、キーワードを使用してそれにチェーンできます。これは、パラメーターなしのコンストラクターの実装から型を継承することを止めるものではないことに注意してください。

于 2012-07-14T18:35:28.893 に答える
1

いいえ。ただし、インターフェイスのインスタンスの構築方法を正規化することが目標の場合は、最初のインスタンスのファクトリである別のインターフェイスを定義します。ファクトリ インターフェイスでは、必要な構築パラメータを課すことができます。

interface IFoo
{
    ...
}

interface IFooFactory
{
    IFoo CreateFoo(string param1, string param2)
}
于 2012-07-14T19:06:02.923 に答える
0

クラスにはコンストラクターがあり、インターフェイスにはできません。したがって、特定のインターフェイスを実装するクラスに強制的にパラメーター化されたコンストラクターを持たせることはできません

ただし、複数のコンストラクターを持つクラスを持つことができ、その子は使用するコンストラクターを選択できます

于 2012-07-14T18:46:41.990 に答える