-1

私は10個のメソッドを含む1つのインターフェースを持っており、class1などのクラスに継承しています。私の要件は、2メソッドをclass1に継承したくないということです。

4

2 に答える 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 に答える