Je viens de remarquer que l'espace de noms FSharp.Core comprend des types de tableaux génériques allant jusqu'à 4 dimensions, à savoir Core. [] <'T> , Core. [,] <' T>, etc. C # et VB semblent bien fonctionner avec System.Array - bien qu'il ne soit pas clair pour moi comment ils parviennent à prendre en charge les types de tableaux spécialisés fortement typés comme int [], string [].
Je suppose que cela devient alors deux questions:
- Comment C # prend-il en charge les types de tableaux spécialisés fortement typés comme int [] basés sur le System.Array non générique?
- Étant donné que C # parvient à le faire, pourquoi F # définit-il des types de tableaux génériques?
Très probablement, en générant une classe spécialisée qui hérite de
System.Array
puisque les génériques n'étaient pas disponibles en 1.0. Le comportement a probablement été conservé pour des raisons de compatibilité.Parce que F # n'avait pas les mêmes contraintes de compatibilité que C # 2.0 avec le code existant. D'après ce que je sais, C # 2.0 aurait eu des types de tableaux génériques s'il s'agissait de la première version de C #.
la source