Il s'agit d'une erreur de compilation (légèrement modifiée pour des raisons de lisibilité).
Celle-ci m'a toujours laissé perplexe. FxCop indique que c'est une mauvaise chose à renvoyer List<T>
et les classes dérivées de Collection<T>
devraient être préférés comme types de retour.
Par ailleurs, FxCop indique qu'il est possible d'utiliser List<T>
pour le stockage/la manipulation de données internes. Ok, j'ai compris, mais ce que je ne comprends pas, c'est pourquoi le compilateur se plaint d'essayer de convertir implicitement List<T>
a Collection<T>
. N'est-ce pas List<T>
plus chargée d'interfaces et plus fonctionnelle ? Pourquoi interdire la conversion implicite ?
Et une autre question qui découle de ce qui précède : est-ce que le new List<int>(some collection<int>)
Le constructeur est-il coûteux ?