| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > аргументы функции |
| Автор: Bogdan1024 5.8.2006, 19:57 |
| Нужно чтобы функция void myfunc(mytype o) принимала одно из четырёх заведомо заданных (тоесть, они в этом классе прописанны как const) возможных значений одного типа, например, "a", "bb", "ccc" и "d4". Каким сделать тип mytype? Чтобы вообще предотвратить возможность получения функцией неверных значений? |
| Автор: mr.DUDA 5.8.2006, 21:53 |
| В таких случаях используется enum. Если нужны значения любого типа, то enum не катит. При проверке аргументов, если какой-нибудь аргумент содержит недопустимое значение, то кидают исключение ArgumentException с именем аргумента и объяснением причины - тогда проблему хотя бы можно будет отловить при отладке. |
| Автор: Exception 6.8.2006, 10:12 | ||
Хехе.. На Spec# или Nemerle (используя http://nemerle.org/Design_by_contract_macros) можно было бы написать вот такое:
|
| Автор: Bogdan1024 6.8.2006, 10:41 |
| Если использовать enum, то можно передать множество. Прийдётся использовать двухэлементный массив типа bool, а те константы выкавыривать отдельно. Спасибо за ответы. |
| Автор: Exception 6.8.2006, 12:13 |
| Не понял -- что значит "передать множество"? |