Какова логика оператора выбора выбора VB.NET с осуществлением операции ИЛИ случая?

Вам нужно установить источник данных для вашего gvPerson следующим образом:

Dim datatable = dsPerson.Tables("Personnel")
gvPerson.DataSource = datatable 
gvPerson.DataBind()

Надеюсь, это поможет.

53
задан Peter Mortensen 7 October 2015 в 02:15
поделиться

5 ответов

Используйте оператор запятой для разграничивания операторов выбора

Select Case 2
    Case 0,1,2,3
        Console.WriteLine("hit")
 End Select
96
ответ дан JaredPar 7 November 2019 в 08:21
поделиться

Как сказанный Jared, необходимо использовать оператор запятой для разграничивания операторов выбора.

Or Вы делали, битовое "ИЛИ", приводящее к нему являющийся "3". Забавно, "2 И 3", вероятно, работал бы на Ваш конкретный случай.

24
ответ дан Peter Mortensen 7 November 2019 в 08:21
поделиться

JaredPar имеет его правильный, но можно также использовать Для построения

Select Case 2
    Case 0,1
    Case 2 To 3
        Console.WriteLine("Hit")
End Select

, Это было бы 0, или 1 ничего не делают, 2 или 3 Хитов печати... Для построения диапазон...

Вот MSDN

20
ответ дан Jason Punyon 7 November 2019 в 08:21
поделиться

Редактирование: кажется, что я был неправ в предположении, что VB.NET не позволяет осуществление операции ИЛИ Случая. Я думал в C# и IL, и кажется, что я был неправ.

Однако, поскольку кто-то указал, причина, Ваш код не работал, состояла в том, потому что Случай 2 Или 3 оценивал 2 Или 3 как поразрядное или и следовательно оценивал для Преобразования регистра 3.

Для разъяснения:


       2 binary = 0000 0010
       3 binary = 0000 0011
  2 Or 3 binary = 0000 0011 (= 3)

  Select Case 2
     Case 0            '--> no match

     Case 1            '--> no match

     Case 2 Or 3       '(equivalent to Case 3  --> no match)
   End Select

Однако я чувствую, что должен указать, что ради производительности, не нужно использовать такие конструкции. То, когда компилятор встретится с операторами Select (переключатель в C#), он попытается скомпилировать их использующий справочные таблицы и переключатель инструкция MSIL, но в случае, где у Вас есть что-то как Случай 1,2,11,55 , компилятор не сможет преобразовать это в справочную таблицу, и он должен будет использовать серию, выдерживает сравнение (который похож на использование Если.. Еще).

Дело в том, что для реального использования в своих интересах оператора Select, случаи должны быть разработаны с этим в памяти. Иначе единственное преимущество является удобочитаемостью кода.

А хорошо разработал переключатель, O (1) операция, тогда как плохо разработанный один (который эквивалентен серии Если.. Затем.. Еще операторы), O (n) операция.

10
ответ дан user67143 7 November 2019 в 08:21
поделиться

Это позволит Вам выполнять "что-то" в случае 0, "что-то еще" в случае 1, "совершать нападки" в случае 2 или 3, или "еще совершают нападки" иначе.

Select Case 2
    Case 0
        Console.WriteLine("something")
    Case 1
        Console.WriteLine("something else")
    Case Is 2 To 3
        Console.WriteLine("hit")
    Else
        Console.WriteLine("hit else")
 End Select
3
ответ дан achinda99 7 November 2019 в 08:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: