我有以下代码
lstLanguage.Items.Add(CultureInfo.GetCultureInfo("en-US").NativeName)
lstLanguage.SelectedIndex = 0
以下代码运行时
Dim strLanguageCode As String = CType(lstLanguage.SelectedItem, CultureInfo).NativeName
它抛出异常
System.InvalidCastException:
Unable to cast object of type 'System.String' to type 'System.Globalization.CultureInfo'.
代码上的错误
答案 0 :(得分:1)
无法将字符串强制转换为CultureInfo,因此您将收到InvalidCastException。
我猜你想要实现的是显示文化的原生名称列表,当用户选择一个时,你希望能够检索原始语言代码或与之相关的CultureInfo。通常处理的方法是将CultureInfo分配给列表,并提供一个查看器,通过NativeName将CultureInfo转换为字符串。