C #: лучший синтаксис для двух сравнений одной переменной в условном выражении - PullRequest
0 голосов
/ 10 мая 2018

Существует ли краткий метод для обработки двух сравнений в условном выражении?

Например:

if(ReturnedCount > 0 && ReturnedCount < 50)
{
    ...
}

Я вполне уверен, что переменная всегда должна быть влевая часть оператора, потому что, когда я попробовал следующее, это не сработало:

if(0 < ReturnedCount < 50)
{
    ...
}

Я выполнил поиск в Google для c # эквивалента ключевого слова между в SQL и не получил хороших результатов.

Есть ли лучший способ выполнить двойное сравнение для одной и той же переменной?

1 Ответ

0 голосов
/ 10 мая 2018

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

В какой-то момент, когда становится трудно читать, вы можете разбить его на вызов метода, который возвращает true / false.

т.

if (Pred.Equals( a, b, c, d ))
{ ... }

Где, Pred - это (не существующий) статический класс, содержащий вспомогательные методы, которые будут использоваться в качестве логических предикатов.

С другой стороны ...

Вторым подходом к этому является цепочка вызовов методов для представления последовательных условных тестов.

т.

if (a.GreaterThan(b).LessThan(c).IsTrue())
{...}

Где GreaterThan и LessThan - это методы расширения, которые возвращают либо значение this, либо значение null, а IsTrue возвращает true, если значение this ненулевое.

Это единственные две техники, с которыми я столкнулся, гудлак!

...