[c#] Interfaccia di cast per il suo oggetto di implementazione concreto o viceversa?


Answers

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.

Question

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?




Entrambi sono validi, considerando che è un cast logico. Molte volte, i vostri utenti di interfaccia non hanno accesso alle classi concrete che è uno dei motivi principali per avere un'interfaccia in primo luogo.




Links



Tags

c# c#   oop