我不能使用GetCultures,从我可以告诉它返回一个空白列表.
private void AddressChooser_Load(object sender, EventArgs e)
{
MessageBox.Show("Form load event successfully triggered") //Debug message - This appears at runtime
foreach (string country in GetCountryList())
{
MessageBox.Show(country); //Debug message - This does not appear at runtime!!
countryBox.Items.Clear();
countryBox.Items.Add(country);
}
}
public static List<string> GetCountryList()
{
MessageBox.Show("Function has been triggered successfully"); //Debug message - This appears at runtime
List<string> cultureList = new List<string>();
CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures);
foreach (CultureInfo culture in cultures)
{
RegionInfo region = new RegionInfo(culture.LCID);
if (!(cultureList.Contains(region.EnglishName)))
cultureList.Add(region.EnglishName);
MessageBox.Show(region.EnglishName); //Debug message - This does not appear at runtime!
}
return cultureList;
}
Run Code Online (Sandbox Code Playgroud)
我觉得很奇怪,这不起作用,因为它只是一个复制和粘贴的片段.请帮忙!谢谢
你必须在某个地方的地板下清扫一个例外.
您的代码失败,因为CultureTypes.AllCultures & ~CultureTypes.NeutralCultures无效.你的清单包含中性文化和new RegionInfo()投掷.
片段:
var c1 = CultureTypes.AllCultures & ~CultureTypes.NeutralCultures;
Console.WriteLine(c1);
Run Code Online (Sandbox Code Playgroud)
产生SpecificCultures, InstalledWin32Cultures,我想这些Win32文化包含中性文化.
简单的解决方案是 CultureInfo.GetCultures(CultureTypes.SpecificCultures);
但要解决的主要问题是您的异常处理和调试技术.
| 归档时间: |
|
| 查看次数: |
1106 次 |
| 最近记录: |