私はメソッドの拡張機能を使用していくつかのクラスをC#で多重継承のサポートの欠如を克服し、(ほとんど継承)を継承することができるようにしようとしています:このコードは動作しC# - 多重継承のメソッド拡張を使用しますか?
public interface IA
{
// nothing
}
public static class A
{
public static void FunctionA(this IA a)
{
// do something
}
}
public interface IB
{
// nothing
}
public static class B
{
public static void FunctionB(this IB b)
{
// do something
}
}
public class Derived : IA, IB
{
// members
}
// main code
Derived myDerivedobj = new Derived();
myDerivedobj.FunctionA(); // Call Function A inherited from Class A
myDerivedobj.FunctionB(); // Call Function B inherited from Class B
けど、私は機能を利用することができています私の派生クラスでクラスAとクラスBによって公開されている、これを達成するための適切な方法ですか?
おかげ
を私はあなたが「正しい」によって何を意味するのか分からないが、それは間違いなく、一般的に用いられている方法です。また:https://stackoverflow.com/q/2456154/302248 – Sach
あなたのインターフェースが実際にメンバーを持たない場合、それらの2つの関数は単に 'object'インスタンスを受け入れることができ、インターフェースはまったく必要ありません。 – Servy