1 / 1 / 1
Регистрация: 19.06.2013
Сообщений: 67
|
|||||||||||
1 | |||||||||||
Инициализация в классе полей типа Enum24.08.2015, 09:04. Просмотров 4550. Ответов 7
Метки нет Все метки)
(
Добрый день!
Есть класс, в нем есть поле перечисления.
0
|
|
24.08.2015, 09:04 | |
Почему перечисления enum объявляются в пространстве имен а не, например, в классе? Как с помощью Enum создать список областей в родительском классе и связать его с базовым Реализованы ли в коде объявление и инициализация в отдельном классе
|
|
![]() ![]() |
|
24.08.2015, 09:18 | 2 |
Keller47, А почему передается строка, вместо EnumEmployees ?
Парсить строки можно с помощью Enum.Parse(). Однако это не функция класса Worker и ему должно передаваться уже распарсенное значение.
1
|
1 / 1 / 1
Регистрация: 19.06.2013
Сообщений: 67
|
||||||||||||||||
24.08.2015, 11:32 [ТС] | 3 | |||||||||||||||
Storm23, да не дописал пост, случайно на отправить нажал ... Дурацкая система с редактированием ...
Еще раз вопрос: Добрый день! Поскажите, как происходит инициализация полей типа перечисления. Если пользователем вводится обычная строка. Есть класс, в нем есть поле перечисления.
Перечисление:
Мейн:
Относительно "Парсить строки можно с помощью Enum.Parse(). Однако это не функция класса Worker и ему должно передаваться уже распарсенное значение.": я правильно понимаю, что если мы хотим в класс передавать строку, которая должна стать типом перечисления, то нужно, допустим, использовать дополнительный метод, который будет парсить, а в поле уже передавать подходящее значение? Можете показать это на простеньком примере?
0
|
2 / 2 / 0
Регистрация: 29.07.2015
Сообщений: 13
|
||||||
24.08.2015, 12:21 | 4 | |||||
Keller47, если вы хотите инициализировать свойство, которое представляет тип EnumEmployees, то в конструктор лучше напрямую передавать объект EnumEmployees:
0
|
1 / 1 / 1
Регистрация: 19.06.2013
Сообщений: 67
|
||||||
24.08.2015, 12:29 [ТС] | 5 | |||||
solntce, а как тогда аргумент должен выглядеть? То есть в качестве аргумента при объявлении экземпляра класса мы будем передавать строку и EnumEmployees
0
|
![]() ![]() |
|
24.08.2015, 13:11 | 6 |
![]() Решение
Да, правильно, только этот метод должен быть не в классе Worker, а двумя этажами выше - в GUI, в контроллере или в view. Проще говоря парсинг должен быть в вашей форме. В доменной модели (Worker и т.п.) парсингу пользовательского ввода делать нечего.
Добавлено через 1 минуту Да, и try/catch там же не забудьте.
0
|
4569 / 3143 / 1342
Регистрация: 09.05.2015
Сообщений: 7,721
|
|
24.08.2015, 14:49 | 7 |
Почему просто не сделать
Код
worker w1 = new Worker("Vasya", EnumEmployees.VicePresident);
1
|
1 / 1 / 1
Регистрация: 19.06.2013
Сообщений: 67
|
|
24.08.2015, 15:49 [ТС] | 8 |
Someone007, Storm23, Спасибо за помощь!
0
|
24.08.2015, 15:49 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Не происходит инициализация полей
Сохранение свойства enum-типа в xml Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |