vb.net, строгий параметр, перечисления и переопределение ToString - PullRequest
1 голос
/ 13 февраля 2009

У меня есть следующий код:

Public Enum Country
   Canada = 1
   USA = 2
End Enum

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

ddl.SelectedValue = Country.Canada

Который работает нормально. Однако, если я включаю предупреждение для неявного преобразования, это дает предупреждение. Меняя его на

ddl.SelectedValue = Country.Canada.ToString()

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

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

Ответы [ 2 ]

1 голос
/ 13 февраля 2009

Вы можете явно привести SelectedValue к int или к Country в виде строки.

If CInt(ddl.SelectedValue) = Country.Canada

или

If ddl.SelectedValue = CStr(Country.Canada)

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

Public Enum Country As Integer

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

0 голосов
/ 13 февраля 2009

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

ddl.SelectedValue = DirectCast(Country.Canada, Integer).ToString()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...