2017-02-17 10 views
-6

Я понятия не имею, почему это происходит, но вот проблема screenshot.Если оператор продолжает когда ложь (несколько || и &&)

я = 0 и allCorrect [0] = верно. В заявлении говорится: «if allCorrect [0]! = True» или «if true! = True», так почему же он все еще запускает код внутри фигурных скобок, и я просто пропущу что-то действительно простое?

Дополнительная информация:

Этот скриншот взят из файла, который компилируется в DLL и используется в другом проекте. Но это ни в коем случае не должно ничего влиять.

Я попытался поставить его в скобки и используя! как это также

if ((parameters[i] == "0" && !allCorrect[i]) || 
       (parameters[i] == "1" && !allCorrect[i]) || 
       (parameters[i].ToLower() == "false" && !allCorrect[i]) || 
       (parameters[i].ToLower() == "true" && !allCorrect[i])) 
+0

код должен быть в (allCorrect [я]!) вопрос, а не изображение – BradleyDotNET

+0

Вы имеете в виду, почему он все еще продолжается в вашей инструкции if? Я прав? –

+0

@WillyDavidJr yes –

ответ

0

Решение:

Я положил все условные операторы внутри если так это выглядит

if (!allCorrect[i]) 
      { 
       if (int.TryParse(parameters[i], out INT)) 
       { 
        if (_command.ParameterTypes[i] == EVariableType.INT) 
        { 
         allCorrect[i] = true; 
        } 
        else 
        { 
         allCorrect[i] = false; 
        } 
       } 
      } 
      if (!allCorrect[i]) 
      { 
       if (float.TryParse(parameters[i], out FLOAT)) 
       { 
        if (_command.ParameterTypes[i] == EVariableType.FLOAT) 
        { 
         allCorrect[i] = true; 
        } 
        else 
        { 
         allCorrect[i] = false; 
        } 
       } 
      } 
      if (!allCorrect[i]) 
      { 
       if (parameters[i] == "0" || 
       parameters[i] == "1" || 
       parameters[i].ToLower() == "false" || 
       parameters[i].ToLower() == "true") 
       { 
        if (_command.ParameterTypes[i] == EVariableType.BOOL) 
        { 
         allCorrect[i] = true; 
        } 
        else 
        { 
         allCorrect[i] = false; 
        } 
       } 
      } 
      if (!allCorrect[i]) 
      { 
       if (_command.ParameterTypes[i] == EVariableType.STRING) 
       { 
        allCorrect[i] = true; 
       } 
       else 
       { 
        allCorrect[i] = false; 
       } 
      } 
Смежные вопросы