41 votes

transférer explicitement des paramètres de type génériques à n’importe quelle interface

Dans Generics FAQ: Best Practices dit:

Le compilateur vous permet de convertir explicitement des paramètres de type génériques dans n’importe quelle interface, mais pas dans une classe :

Je considère que la limitation est raisonnable pour les classes et les interfaces, sauf si la classe/interface n’est pas spécifiée comme type de contrainte.

Alors pourquoi un tel comportement, pourquoi est-il autorisé pour les interfaces ?

3voto

Jin-Wook Chung Points 2238

Dans le principe d’héritage de C#, les interfaces peuvent être héritées plusieurs fois, mais une classe une seule fois. Comme l’héritage des interfaces a une hiérarchie complexe, le .net framework n’a pas besoin de garantir au type générique T une interface spécifique au moment de la compilation. (MODIFIER) Au contraire, une classe pourrait être assurée d’une classe spécifique avec la déclaration d’une contrainte de type à la compilation comme le code suivant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X