Необходимо проверить условие, если значение равно `YES` или` NO`.И для недопустимых значений он должен выдать какое-то сообщение об ошибке - PullRequest
1 голос
/ 01 июля 2019

Вот код, который я пробовал:

  if(!string.IsNullOrEmpty(Taskinfo.DoRollOver) &&(Taskinfo.DoRollOver != "YES" || Taskinfo.DoRollOver != "NO"))
  {
     throw new DataException("DoRollOver is not valid");
  }

Но если я пытаюсь предоставить действительные данные, такие как YES или NO, все равно возникает исключение.

Ответы [ 5 ]

2 голосов
/ 01 июля 2019

Это условие всегда верно.Если Taskinfo.DoRollOver - «ДА», то оно не равно «НЕТ», и наоборот.Вы должны использовать логический оператор &&, а не логический оператор ||:

if (string.IsNullOrEmpty(Taskinfo.DoRollOver) ||
    (Taskinfo.DoRollOver != "YES" && // Here!
     T0askinfo.DoRollOver != "NO"))
{
    throw new DataException("DoRollOver is not valid");
}
0 голосов
/ 01 июля 2019

Я бы сказал, что вы немного перевернули логику.

if((Taskinfo.DoRollOver == "YES")||(Taskinfo.DoRollOver == "NO"))
{
  // do something
}
else
  throw new DataException("DoRollOver is not valid");

Также, если TaskInfo.DoRollOver - строка, я бы использовал TaskInfo.DoRollOver.ToUpper () - на всякий случай.

0 голосов
/ 01 июля 2019

Попробуйте изменить условия, подобные этим

if (string.IsNullOrEmpty(Taskinfo.DoRollOver) ||(Taskinfo.DoRollOver != "YES" && T0askinfo.DoRollOver != "NO"))
{
    throw new DataException("DoRollOver is not valid");
}
0 голосов
/ 01 июля 2019

может быть, это может помочь вам

 if(!string.IsNullOrEmpty(Taskinfo.DoRollOver))
  {
    if(Taskinfo.DoRollOver != "YES" && Taskinfo.DoRollOver != "NO")
      {
       throw new DataException("DoRollOver is not valid");
      }
  }else
  {
    //Do Something
  }
0 голосов
/ 01 июля 2019

Стремясь к удобочитаемости и простоте, я бы разделил условия:

if(Taskinfo.DoRollOver == "YES")
{
  // do smoething
}
else if(Taskinfo.DoRollOver == "NO")
{
  // do smoething else
}
else
  throw new DataException("DoRollOver is not valid");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...