2009-02-13 57 views
1

我有以下代码:vb.net,选择严格,枚举和压倒一切的ToString

Public Enum Country 
    Canada = 1 
    USA = 2 
End Enum 

当我想看看用户选择的值,我做的:

ddl.SelectedValue = Country.Canada 

哪些工作正常。但是,如果我打开隐式转换的警告,则会发出警告。将它更改为

ddl.SelectedValue = Country.Canada.ToString() 

失败,因为ToString()方法返回“Canada”而不是“1”。

摆脱警告的最佳方法是什么?

回答

1

您可以将SelectedValue显式强制转换为int或Country作为字符串。

If CInt(ddl.SelectedValue) = Country.Canada 

If ddl.SelectedValue = CStr(Country.Canada) 

如果你把第一个选项,您可能需要显式声明的枚举的整数发生

Public Enum Country As Integer 

的警告,因为的SelectedValue是一个字符串,乡村是一个整数,所以隐式转换发生 - 就像它说的一样!

0

如果你想要'1'而不是'加拿大',你可以明确地先把它转换成整数,然后对结果调用.ToString()。

ddl.SelectedValue = DirectCast(Country.Canada, Integer).ToString()