私は10個のメソッドを含む1つのインターフェースを持っており、class1などのクラスに継承しています。私の要件は、2メソッドをclass1に継承したくないということです。
2 に答える
6
インターフェイスを 2 つに分割し、クラスにそのうちの 1 つだけを実装させることができます。
public interface Ifc1 {
void Method1();
}
public interface Ifc2 {
void Method2();
}
class Cls1 : Ifc1 {
// now you need to implement Method1 only
}
NotImplementedException
または、を投げることができますMethod2
:
class Cls1 : Ifc1 {
public void Method2() {
throw new NotImplementedException();
}
}
可能であれば、最初のオプションを選択します。
例外をスローすると、メソッドを呼び出したときにそのメソッドがサポートされていないことがわかります。例外をキャッチする必要があり、作成するコードはこれに対処する必要があり、それほどクリーンではありません。
代わりに、インターフェイスを分割すると、実装したくないメソッドがクラスに含まれなくなります。
于 2013-08-31T16:20:02.767 に答える