#vb.net
#vb.net
Вопрос:
У меня есть 12 переменных в VB.Net .
If a = 1 _ Or b = 2 _ Or c = 3 _ Or d = 4 _ Or e = 5 _ Or f = 6 _ Or...... Then
Вот так….
Для этого моя строка будет такой длинной для 12 переменных…
ИТАК, есть ли какой-либо другой способ сравнить 12 переменных?
Спасибо Pankaj
Комментарии:
1. Если у вас есть 50! неструктурированные переменные каким-то образом перемещаются в методе, вы, должно быть, делаете что-то неправильно. Обслуживание вашего кода должно быть кошмаром. Нет ли какой-либо внутренней структуры или взаимосвязи между вашими переменными a, b, c, d или e и т.д. Если это так, то вам следует смоделировать эту структуру в вашем приложении.
2. Мне было бы очень любопытно узнать, в какой ситуации вам нужно было бы написать такой код. Возможно, немного больше контекста помогло бы нам сделать рекомендации лучше.
Ответ №1:
Существует несколько способов сравнить кучу переменных с одним значением или вычислить выражение по ним. Например, если вы хотите проверить, равна ли какая-либо из ваших переменных от a до z 10.
Однако, когда вы оцениваете каждую из них по другому постоянному значению, вам нужно выражение для каждой из них.
Вы должны отметить, что ваш код будет излишне оценивать все выражения, хотя теоретически он мог бы прекратить проверку при выполнении любого из условий. Для этого используйте OrElse
вместо Or
. Это, конечно, сделает код еще длиннее.
Один из способов немного сократить синтаксис (для длинных наборов условий):
Dim all = new Boolean(){ _
a = 1, _
b = 2, _
c = 3, _
d = 4, _
e = 5, _
}.All(Function(x As Boolean) x)
Однако это снова приводит к оценке всех условий.
Ответ №2:
Нет способа сделать это.Если у вас есть этот тип сопоставления….
Спасибо