Hacer dos interfaces IA
y IB
:
public interface IA
{
public void methodA(int value);
}
public interface IB
{
public void methodB(int value);
}
Siguiente hacen A
implemento IA
y B
implemento IB
.
public class A : IA
{
public int fooA { get; set; }
public void methodA(int value) { fooA = value; }
}
public class B : IB
{
public int fooB { get; set; }
public void methodB(int value) { fooB = value; }
}
luego implementar la clase C de la siguiente manera:
public class C : IA, IB
{
private A _a;
private B _b;
public C(A _a, B _b)
{
this._a = _a;
this._b = _b;
}
public void methodA(int value) { _a.methodA(value); }
public void methodB(int value) { _b.methodB(value); }
}
Generalmente esto es un diseño pobre en general, ya que puede tener tanto A
y B
implementar un método con el mismo nombre y tipos de variables tales como foo(int bar)
y deberá decidir cómo implementarlo, o si solo llama al foo(bar)
en _a
y _b
. Como se sugiere en otro lugar, debe considerar las propiedades .A
y .B
en lugar de combinar las dos clases.
Probablemente debería disponer de una interfaz ... http://stackoverflow.com/questions/178333/multiple-inheritance-in-c-sharp – Oofpez
Buena Q Satish: p – Jacooobley