c# interface non - Interfaccia di cast per il suo oggetto di implementazione concreto o viceversa?
Nella maggior parte delle lingue puoi lanciare entrambe le direzioni. Se hai una lezione concreta, puoi lanciarla nell'interfaccia. Se hai un'interfaccia, è possibile trasmettere alla classe concreta.
In generale, vuoi solo andare nella prima direzione. Il motivo è che non si dovrebbe sapere qual è la classe concreta quando si ha solo un puntatore all'interfaccia. Se stai passando qualcosa in giro come interfaccia, dovresti essere in grado di fare tutto il necessario da quella interfaccia. Se ti ritrovi a dover utilizzare parti dell'oggetto concreto non nell'interfaccia, hai un problema di progettazione che dovrebbe essere risolto invece di eseguire il cast.
In C #, quando ho un'interfaccia e diverse implementazioni concrete, posso lanciare l'interfaccia su un tipo concreto o il cast di tipo concreto da interfacciare?
Quali sono le regole in questo caso?