C # - более короткая версия заявления IF - PullRequest
3 голосов
/ 09 декабря 2010

Существует ли более короткая версия оператора IF для этого?

if (el.type == ElementType.Type1 || el.type == ElementType.Type2)

Ответы [ 13 ]

0 голосов
/ 09 декабря 2010

Краткий ответ - нет. Нет языковой конструкции C #, которая позволяла бы объединять сравнения объектов. Но, как уже упоминали многие люди, создание коллекции ваших типов, вероятно, является лучшим выбором для создания более короткого оператора if. Однако это немного жертвует в области производительности. Я бы придерживался утверждения OR.

0 голосов
/ 09 декабря 2010

Полагаю, вы имеете в виду предложение IN () или что-то подобное? Не совсем ... Ну, вроде ... Вы можете сделать что-то вроде:

if ((new [] { ElementType.Type1, ElementType.Type2}).Contains(el.type)) {...}

Но это не будет настолько быстрым, чем то, что вы уже делаете. Вы также можете сделать

if (el.type == ElementType.Type1 | el.type == ElementType.Type2)

но это не делает оценку короткого замыкания, поэтому вы редко хотите использовать этот оператор. Мой совет: придерживайтесь того, что у вас есть.

0 голосов
/ 09 декабря 2010

Вы можете попробовать это:

if(new [] { ElementType.Type1, ElementType.Type2 }.Contains(el.type))

(получается, что требуется еще больше символов)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...