【发布时间】:2012-03-29 16:35:41
【问题描述】:
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);`
【问题讨论】:
-
"Enum.ToObject()" 而不是 "Convert.ChangeType" 在我得到错误的行?
-
如果您对自己的问题有解决方案,请将其作为答案,以便将来的人们更快地找到答案。做出任何回答都没有代表限制。请避免在标题中使用 [已解决]。
标签: c# visual-studio enums sms gsm