私は、私が使用している一連のインターフェイスを持っています。彼らはIPatient、IDoctor、IPersonです。 IPersonには、すべての人物(名前、性別、住所など)の共有プロパティが含まれています。私はIDoctorとIPatientがIPersonを実装することを希望しますが、this can't be done in C# according to this question ..インターフェイス間の重複を排除する方法
IPatientとIDoctorの間でこれらの重複するプロパティを削除する方法はありますか?
なぜあなたは 'IPerson'をインターフェースにする必要がありますか? 'Person'を抽象クラスとして記述するほうが良いのではないでしょうか?基本的な実装を単一の場所に提供し、必要な場合は派生クラスでのみオーバーライドするのが非常に便利なので、インターフェイスよりも抽象クラスを好む方が一般的です。 –
私のメソッドは、インターフェイスをそれらのパラメータとして受け入れます。抽象クラスとして実装すると、抽象クラスのプロパティを使用する具体的なインスタンスにパラメータをキャストする必要があります。 –
@BillMartinいいえ、あなたはいません。インターフェイスメソッドを呼び出すと、CLRはオブジェクトの実行時型のインターフェイスマップに基づいてオブジェクトの特定のメソッドを呼び出します。オブジェクトの実行時型の作成者は、明示的なインターフェイスメンバの実装を使用して、これを完全に制御します。オブジェクトをキャストする必要はありません。または私は問題を誤解していますか? – phoog