У меня есть перечисление, которое я закодировал сегодня. Каковы возможные способы расширения его функциональности или, возможно, добавления к ней дополнительных переменных позднее? Будет ли частичное перечисление делать трюк?Расширение функциональности в Enum
ответ
Это действительно зависит от того, кто использует перечисление. Если это всего лишь ваш собственный код, вы можете добавить к нему дополнительные значения без каких-либо побочных эффектов, так как в идеале уже будет явно проверять ожидаемые значения. Как правило, довольно легко отслеживать любые места, требующие редактирования.
Это становится более сложным, если enum был выпущен для других людей, чтобы потреблять как часть API; например, если вы добавите «MyNewValue» в перечисление, используемое при возврате веб-метода, что может привести к сбою существующих клиентов (которые еще не были обновлены), когда вы отправляете их это значение - либо через код, а не зная, что делать, или (более немедленно) с помощью слоя сериализации, паника, когда он видит строку, которую он не ожидал.
Нет такой вещи, как partial enum
; только class
, struct
или interface
.
- 1. Расширение функциональности Rails двигателей
- 2. Расширение функциональности мостов Rails
- 3. Расширение функциональности Debug Eclipse
- 4. Расширение функциональности функции Javascript
- 5. Расширение функциональности C#
- 6. Расширение функциональности входа в систему
- 7. Расширение функциональности диаграммы в SSRS
- 8. Расширение Enum в C#
- 9. Расширение функциональности для объекта PHP
- 10. Swift: расширение функциональности функции print()
- 11. Расширение функциональности всех реализаций интерфейса?
- 12. Расширение функциональности ядра Laravel 5
- 13. Расширение функциональности GotoAnything Sublime Text
- 14. Расширение функциональности Element и ElementTree
- 15. Расширение .NET MembershipCreateStatus enum
- 16. Расширение функциональности массива int в OCaml
- 17. Расширение функциональности модели в смонтированных рельсах двигателя
- 18. Java: интерфейсы, содержащие внутренние перечисления; Расширение функциональности в реализации классов
- 19. Расширение функциональности Magic Mouse: мне нужен kext?
- 20. Расширение функциональности Drupal для пользовательской PHP-страницы
- 21. C#: Расширение функциональности интерфейса, поддерживающего обратную совместимость
- 22. Расширение функциональности скомпилированного сценария на Python
- 23. Visual Studio 2012 Расширение функциональности F7
- 24. Расширение функциональности до .NET Элементы управления
- 25. Расширение функциональности существующего хранилища ATG CRS
- 26. Расширение функциональности Jconsole для клиентских подключений удаленного
- 27. Расширение класса с enum - java
- 28. Расширение boost :: dynamic_bitset для добавления некоторой функциональности
- 29. Расширение функциональности простого графического интерфейса пользователя
- 30. enum не способен понять в памяти и функциональности
так как это, если он был выпущен как API? – Soham
@ Сохам - с большой осторожностью. Конечно, вы можете перестраивать и передислоцировать dll, но это может иметь последствия. –
@Soham: Если вы пишете библиотеку многократного использования, ознакомьтесь с Руководством по разработке рамок (http://www.amazon.com/dp/0321545613). Книга содержит 13 страниц, посвященных проектированию перечислений (п. 4.8). Марк абсолютно прав относительно риска совместимости добавления значений в перечисления. ФДГ говорит об этом: _ «СЧИТАЕТ, добавляя значения в перечисления, несмотря на небольшой риск совместимости». _ – Steven