J'ai posté une réponse à this question, y compris une très courte diatribe à la fin sur la façon dont String.Split() doit accepter IEnumerable < chaîne> plutôt que chaîne [].Hérite IEnumerable à partir de conséquences d'objet
Cela m'a fait réfléchir. Que faire si la classe Object de base dont tout le reste hérite fournit une implémentation par défaut pour IEnumerable, de sorte que tout retourne maintenant un énumérateur sur un seul élément (lui-même) - à moins qu'il ne soit remplacé par d'autres classes. L'idée est que si des méthodes comme String.Split() acceptaient IEnumerable plutôt qu'un tableau, je pourrais passer une seule chaîne à la fonction et cela fonctionnerait plutôt que de créer un tableau de séparateurs . Je suis sûr qu'il y a toutes sortes de raisons pour ne pas le faire, pas la moindre est que si tout implémente IEnumerable, alors les quelques classes où l'implémentation s'éloigne de la valeur par défaut pourraient se comporter différemment de ce que vous attendez dans certains scénarios. Mais je pensais toujours que ce serait un exercice amusant: quelles autres conséquences y aurait-il?
Je me demande si je devrais partager mes réponses ... – MagicKat