Voglio sapere se una classe può ereditare da una classe e un'interfaccia. Il codice di esempio qui sotto non funziona, ma penso che trasmetta ciò che voglio fare. Il motivo per cui voglio farlo è perché nella mia azienda realizziamo dispositivi USB, seriali, Ethernet, ecc. Sto cercando di sviluppare un componente/interfaccia generico che possa essere utilizzato per scrivere programmi per tutti i nostri dispositivi che contribuirà a mantenere le stesse cose comuni (come la connessione, la disconnessione, il recupero del firmware) per tutte le nostre applicazioni.In C#, una classe può ereditare da un'altra classe e un'interfaccia?
Per aggiungere a questa domanda: Se GenericDevice si trova in un progetto diverso, posso inserire l'interfaccia IOurDevices in quel progetto, quindi rendere la classe USBDevice implementare l'interfaccia se aggiungo un riferimento al primo progetto? Perché vorrebbe solo fare riferimento a un progetto e quindi implementare interfacce diverse a seconda del 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;
}
}
Per riferimento futuro, la sezione 10.1.4 della specifica C# descrive esattamente come dichiarare una classe che ha più tipi di base. –
@Eric Lippert: Potresti per favore aiutarmi a capire su questo caso se è corretto e sarà disponibile in futuro? –