Расширение функциональности в Enum - PullRequest
3 голосов
/ 27 апреля 2010

Считайте, что у меня есть перечисление, которое я сегодня кодировал. Каковы возможные способы расширить его функциональность или, возможно, добавить к нему больше переменных на более поздний срок? Подойдут ли частичные перечисления?

1 Ответ

5 голосов
/ 27 апреля 2010

Это действительно зависит от того, кто использует enum. Если это просто ваш собственный код, то вы, вероятно, можете добавить к нему больше значений без каких-либо побочных эффектов, поскольку в идеале уже следует явно проверять ожидаемые значения. Как правило, довольно легко отследить любые места, которые нужно отредактировать.

Становится хитрее, если enum был выпущен для использования другими людьми как часть API; например, если вы добавите «MyNewValue» в перечисление, используемое при возврате веб-метода, это может привести к сбою существующих клиентов (которые еще не были обновлены) при отправке им этого значения - либо через код, не зная, что делать, или (более немедленно) из-за панического уровня сериализации, когда он видит строку, которую он не ожидал.

Нет такой вещи как partial enum; только class, struct или interface.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...