重複の可能性:
コンストラクターの署名を定義するインターフェイス?
インターフェイスでメソッドとプロパティを宣言し、それを実装するクラスにこれらのメソッドとプロパティを実装するように強制できます。同様に、特定のインターフェースを実装するすべてのクラスが常にパラメーター化されたコンストラクターを持つ必要があるという規則を課すことは可能ですか?
これが可能かどうかはわかりません。ちょっとした考え。
ありがとう
重複の可能性:
コンストラクターの署名を定義するインターフェイス?
インターフェイスでメソッドとプロパティを宣言し、それを実装するクラスにこれらのメソッドとプロパティを実装するように強制できます。同様に、特定のインターフェースを実装するすべてのクラスが常にパラメーター化されたコンストラクターを持つ必要があるという規則を課すことは可能ですか?
これが可能かどうかはわかりません。ちょっとした考え。
ありがとう
同様に、特定のインターフェースを実装するすべてのクラスが常にパラメーター化されたコンストラクターを持つ必要があるという規則を課すことは可能ですか?
いいえ、インターフェイス宣言ではありません。
代わりに抽象クラスを作成し、パラメーター化されたコンストラクターを持つことbase
ができます。すべての実装型はコンストラクターを継承し、キーワードを使用してそれにチェーンできます。これは、パラメーターなしのコンストラクターの実装から型を継承することを止めるものではないことに注意してください。
いいえ。ただし、インターフェイスのインスタンスの構築方法を正規化することが目標の場合は、最初のインスタンスのファクトリである別のインターフェイスを定義します。ファクトリ インターフェイスでは、必要な構築パラメータを課すことができます。
interface IFoo
{
...
}
interface IFooFactory
{
IFoo CreateFoo(string param1, string param2)
}
クラスにはコンストラクターがあり、インターフェイスにはできません。したがって、特定のインターフェイスを実装するクラスに強制的にパラメーター化されたコンストラクターを持たせることはできません
ただし、複数のコンストラクターを持つクラスを持つことができ、その子は使用するコンストラクターを選択できます