16 votes

Combien de méthodes une classe C# peut-elle avoir

Y a-t-il une limite au nombre de propriétés et de méthodes qu'une classe C# peut avoir ?

J'ai parcouru rapidement la norme ECMA-334 et je n'ai trouvé aucune information à ce sujet.

Avant d'aborder les raisons pour lesquelles une classe avec de nombreuses méthodes est mal conçue, je veux être plus clair sur l'intention. Bien sûr, je n'écrirai pas une classe avec un grand nombre de méthodes manuellement. La raison pour laquelle je pose cette question est que j'ai besoin de générer un grand nombre d'unités d'exécution par code. Je suis en train de débattre entre avoir plusieurs classes avec une seule méthode ou une grande classe avec plusieurs méthodes.

Donc pour cette question, je suis seulement intéressé s'il y a une limite et quelle est la limite pour le nombre de propriétés, méthodes.

1voto

Fredrik Mörk Points 85694

Plus que vous ne voudrez jamais en mettre dans une seule classe.

0voto

Heiko Hatzfeld Points 2931

Oui...

Cela s'appelle le bon sens. Essayez de ne pas surcharger un cours, il violera très probablement le principe de responsabilité unique, et personne ne sera capable de le comprendre.

Après tout, une classe est là "seulement pour aider le développeur, qui ne peut pas mettre plus de 7 informations à la fois dans sa mémoire à court terme" (Oui, je sais que c'est une déclaration dangereuse).

0voto

Mehmet Aras Points 3901

Je ne pense pas. Cependant, les bonnes pratiques et directives de développement de logiciels, lorsqu'elles sont suivies et prises en compte, devraient naturellement limiter le nombre de propriétés et de méthodes d'une classe à ce qui est logique et absolument nécessaire. Ces pratiques incluent SOLID, KISS (keep it simple), DRY (Don't repeat yourself), composition, refactoring, héritage, etc.

0voto

Brad Aisa Points 1

J'ai un outil de génération de code automatisé et je me heurte actuellement à la limite entre ~5K (qui a fonctionné) et 10K, qui n'a pas fonctionné.

System.TypeLoadException: Type '<the type name>' from assembly '<the assembly name>, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' contains more methods than the current implementation allows.

Cela contredit donc les affirmations selon lesquelles elle est "illimitée".

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