C # с помощью "?"если еще заявления, чтобы установить значение, что это называется - PullRequest
4 голосов
/ 14 марта 2012

Эй, я только что натолкнулся на следующее утверждение

return name != null ? name : "NA";

Мне просто интересно, как это называется в .NET

?стоять то есть, то сделать это ...?

Ответы [ 4 ]

11 голосов
/ 14 марта 2012

Это «условный оператор», обычно известный как Тернарный оператор

Он встречается во многих языках программирования.

2 голосов
/ 14 марта 2012

Просто, чтобы добавить к ответам всех остальных, обратите внимание, что в ...

condition ? trueResult : falseResult

... только condition и trueResult или falseResult (но не оба) будут оцениваться,Это позволяет писать код, подобный этому ...

string name = user == null ? "<nobody>" : user.Name;

... без риска выброса NullReferenceException, поскольку user.Name будет оцениваться, только если user не- null.Сравните это поведение с If оператором VB.NET и IIf function .

1 голос
/ 14 марта 2012

Как сказал Lion в комментариях, они называются ternary operators, хотя они также известны как inline if statmenets и conditional operator.

Если вы хотите узнать о них больше, эта страница Википедиипоможет, и у него есть примеры для многих языков программирования: http://en.wikipedia.org/wiki/%3F:

0 голосов
/ 14 марта 2012

Это условный оператор, который является троичным оператором.Поскольку не так много других троичных операторов (оператор с тремя аргументами), многие считают его троичным оператором, что неточно!

...