У меня есть функция с кратному, если (в ЭТО НЕ АКТУАЛЬНО КОД)C#: Expression
if(n == 1)
m = 1;
if(n == 2)
m = 2;
if(n == 3)
m = 3;
Вместо того, что я хотел сделать, сделать их всех в: выражение:
(n == 1) ? m = 1;
Но он говорит, что его ожидали «:»
Я знаком с: выражение от C++, где вы можете просто написать:
(n == 1) ? m = 1 : 0;
Но 0 здесь не требуется. Это смешной вопрос, и я даже не мог найти ответ в google, поскольку он игнорирует «?» Как слово.
ANSWER: слишком плохой ответ был в комментариях. В этом выражении нет никакого способа «ничего не делать», и я должен использовать if-else или switch. Благодарю.
Почему бы не 'm = n'? – Pubby
Да, Google трудно помечать вопросительный знак. Это называется тернарным оператором. – DOK
Оператор if if выполняет оператор, если условие выполнено *. Условное выражение * выбирает выражение для оценки, если условие выполнено *, а в C# оно должно что-то делать с этим выражением *. (В отличие от C++, где выражение может быть выполнено для его побочных эффектов.) Вы смешиваете два стиля вместе странным образом; не делайте этого. Это обычно невозможно, и когда это возможно, это очень запутанно. Используйте переключатель или if-else; это гораздо более удобочитаемо. –