Considérons que j'ai une énumération, que j'ai codée aujourd'hui. Quels sont les moyens possibles d'étendre ses fonctionnalités, ou peut-être ajouter plus de variables, à une date ultérieure? Est-ce que les enums partiels vont faire l'affaire?Extension de la fonctionnalité dans une énumération
Répondre
Cela dépend vraiment de qui utilise l'énumération. Si c'est juste votre propre code, alors vous pouvez probablement ajouter plus de valeurs à cela sans aucun effet secondaire, puisque vous devriez déjà déjà vérifier explicitement les valeurs attendues. Il est généralement assez facile de retrouver tous les endroits qui ont besoin d'être édités.
Il devient plus difficile si l'énumération a été libérée pour que d'autres personnes consomment dans le cadre d'une API; Par exemple, si vous ajoutez "MyNewValue" à une énumération utilisée dans le retour d'une méthode Web, les clients existants (qui n'ont pas encore été mis à jour) risquent de se bloquer lorsque vous leur envoyez cette valeur - soit via le code sachant quoi faire, ou (plus immédiatement) par la couche de sérialisation qui panique quand elle voit une chaîne à laquelle elle ne s'attendait pas.
Il n'existe pas de partial enum
; seulement class
, struct
ou interface
.
- 1. Ajout d'une fonctionnalité de capture d'écran à une extension firefox
- 2. java class, extension de la fonctionnalité API externe
- 3. Extension de HtmlTextWriterTag Énumération pour les balises HTML 5
- 4. Inverser une énumération dans VB.NET
- 5. comment implémenter la fonctionnalité autosuggest dans la fonctionnalité de recherche magento
- 6. La sélection d'une valeur de plusieurs dictionnaires dans une énumération
- 7. énumération avant/forte dans VS2010
- 8. Remplacement d'une énumération qui nécessite une traduction et un énumération
- 9. Comment accéder à une énumération dans la page maître
- 10. Énumération de liste dans SQL?
- 11. Comment éviter les doublons dans une énumération?
- 12. Nombre total d'éléments définis dans une énumération
- 13. Comment utiliser? caractère dans une énumération
- 14. Vous itérez via une énumération dans Silverlight?
- 15. Méthodes d'extension IEnumerable sur une énumération
- 16. Énumération dans un JSP
- 17. Énumération dans l'activité
- 18. Comment créer une énumération globale
- 19. Hibernate Projections.sum() sur une énumération
- 20. Une sorte de fonctionnalité d'événement dans Django?
- 21. La fonctionnalité de Document dans une implémentation d'analyseur
- 22. Poussez la fonctionnalité ViewModel commune dans une classe de base?
- 23. Énumération de tables LINQ avec énumération de colonnes
- 24. Liaison DropDownList à une énumération
- 25. Utilisation de Components.utils.import dans une extension firefox
- 26. Comment désactiver la fonctionnalité Tab dans une grille dans WPF
- 27. Énumération dynamique de valeurs pour une propriété dans .Net
- 28. Reprendre la fonctionnalité de téléchargement dans NSURLConnection
- 29. énumération par une combinaison de cinq cartes
- 30. Accéder à une énumération dans un espace de nom différent
alors comment ça se fait, si elle a été publiée en tant qu'API? – Soham
@Soham - avec grand soin. Bien sûr, vous pouvez reconstruire et redéployer la DLL, mais cela peut avoir des conséquences. –
@Soham: Si vous écrivez une bibliothèque réutilisable, veuillez lire les directives de conception de cadre (http://www.amazon.com/dp/0321545613). Le livre a 13 pages de conception d'énumérations (paragraphe 4.8). Marc a parfaitement raison quant au risque de compatibilité d'ajouter des valeurs à des enums. Le FDG dit à ce sujet: _ "CONSIDER ajouter des valeurs à enums, malgré un petit risque de compatibilité." _ – Steven