Проверьте множественные условия в троичном операторе в c # - PullRequest
0 голосов
/ 25 февраля 2012

У меня есть три переменные

int a =10;
int b=20;
int c=30;
int d=0;

Теперь я хочу использовать троичный оператор и назначить наибольшее значение
среди (a, b, c) в «d».Заранее спасибо

Ответы [ 4 ]

4 голосов
/ 25 февраля 2012

Вы можете использовать Math.Max для достижения своей цели:

   int d = Math.Max(a, Math.Max(b, c))

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

   int d = (a > b ? a : b) > c ? (a > b ? a : b) : c;

или

   int d = a > b ? (a > c ? a : c) : (b > c ? b : c);
1 голос
/ 25 февраля 2012

Еще один способ сделать это:

d = new[] { a, b, c }.Max();

Что короче и, на мой взгляд, гораздо более читабельно, чем версия Math.Max ​​

1 голос
/ 25 февраля 2012

вы можете сделать это, потому что вы можете вкладывать троичные операторы, как видно здесь .

Реальный вопрос: почему будетВы хотите сделать это.Читаемость будет ужасной.Версия Юрия Гуца с max-функциями гораздо удобнее для чтения.

0 голосов
/ 25 февраля 2012

d = (a> b)?((a> c)? a: c): ((b> c)? b: c)

...