2009-02-13 8 views
1

У меня есть следующий код:vb.net, вариант строгого, перечислений и наиважнейшая ToString

Public Enum Country 
    Canada = 1 
    USA = 2 
End Enum 

Когда я хочу увидеть, если пользователь выбрал значение, я делаю:

ddl.SelectedValue = Country.Canada 

Что хорошо работает. Однако, если я включу предупреждение для неявного преобразования, это даст предупреждение. Изменение его на

ddl.SelectedValue = Country.Canada.ToString() 

не работает, поскольку метод ToString() возвращает «Канада» не «1».

Каков наилучший способ избавиться от предупреждения?

ответ

1

Вы можете явно отобразить SelectedValue в int или Country как строку.

If CInt(ddl.SelectedValue) = Country.Canada 

или

If ddl.SelectedValue = CStr(Country.Canada) 

Если взять первый вариант, вы, возможно, придется явно объявить перечисление, как Integer

Public Enum Country As Integer 

Предупреждение происходит потому, что SelectedValue является строкой, и страна является Integer, поэтому происходит неявное преобразование - точно так же, как сказано!

0

Если вы хотите значение '1', а не 'Канада', вы можете явно сначала перенести его как целое, а затем вызвать .ToString() в результате этого.

ddl.SelectedValue = DirectCast(Country.Canada, Integer).ToString() 
Смежные вопросы