Quiero saber si una clase puede heredar de una clase y una interfaz. El siguiente código de ejemplo no funciona, pero creo que transmite lo que quiero hacer. La razón por la que quiero hacer esto es porque en mi empresa fabricamos dispositivos USB, seriales, Ethernet, etc. Estoy tratando de desarrollar un componente genérico/interfaz que pueda usar para escribir programas para todos nuestros dispositivos que ayuden a mantener las mismas cosas (como conectar, desconectar, obtener firmware) para todas nuestras aplicaciones.En C#, ¿puede una clase heredar de otra clase y una interfaz?
Para agregar a esta pregunta: Si GenericDevice está en proyecto diferente, ¿puedo poner la interfaz IOurDevices en ese proyecto y luego hacer que la clase USBDevice implemente la interfaz si agrego una referencia al primer proyecto? Porque me gustaría simplemente hacer referencia a un proyecto y luego implementar diferentes interfaces según el dispositivo.
class GenericDevice
{
private string _connectionState;
public connectionState
{
get{return _connectionState; }
set{ _connectionState = value;}
}
}
interface IOurDevices
{
void connectToDevice();
void DisconnectDevice();
void GetFirmwareVersion();
}
class USBDevice : IOurDevices : GenericDevice
{
//here I would define the methods in the interface
//like this...
void connectToDevice()
{
connectionState = "connected";
}
}
//so that in my main program I can do this...
class myProgram
{
main()
{
USBDevice myUSB = new USBDevice();
myUSB.ConnectToDevice;
}
}
Para su referencia futura, la sección 10.1.4 de la especificación C# describe con precisión cómo declarar una clase que tiene múltiples tipos de bases. –
@Eric Lippert: ¿Podrían por favor ayudarme a entender sobre este caso si es la forma correcta y estará disponible en el futuro? –