comboBox2.DataSource = Enum.GetValues(typeof(GSMModemTypeConstants));
GSMModemTypeConstants s_type = (GSMModemTypeConstants)Convert.ChangeType(
comboBox2.Text, typeof(GSMModemTypeConstants));
В первой строке пользователь выбирает тип своего модема из комбинированного списка, который получает список модемов, доступных из Enum GSMModemTypeConstants. Во второй строке я хочу передать выбранный тип модема в s_type, который позже будет использоваться методом, который фактически отправляет SMS.
Когда я вручную устанавливаю s_type, все отлично работает, например:
GSMModemTypeConstants s_type = GSMModemTypeConstants.gsmModemSonyEricsson;
// OR
GSMModemTypeConstants s_type = GSMModemTypeConstants.gsmModemNokia;
Но когда я пытаюсь извлечь выбор из comboBox
и установить s_type
, как я делаю во второй строке, преобразование выдает мне ошибку, которую я не могу понять.
Я неправильно обращаюсь с Convert.ChangeType
методом? Если я не виноват, есть ли другой способ преобразовать тип из строки во что-то еще, кроме Convert.ChangeType
?
Решение
У меня все еще нет необходимой репутации, чтобы ответить на нее ниже, поэтому вот код ...
GSMModemTypeConstants s_type = (GSMModemTypeConstants)System.Enum.Parse(
typeof(GSMModemTypeConstants), comboBox2.Text);`