用 ? 显示三个数中最大数的方法操作员

Method for displaying the largest of three numbers with the ? operator

我一直在尝试定义一种方法,该方法应该将三个 int 数字中最大的一个存储在一个变量中,然后 return 该值。

我是这样尝试的:

public static int Max(int a, int b, int c)
{
    int iResult = 0;

    a > b && a > c ? iResult = a : b > a && b > c ? iResult = b : iResult = c;
    return(iResult);
}

如果有人能告诉我为什么是“?”,那就太好了。运算符不起作用:)

iResult = a > b && a > c ? a : b > a && b > c ? b : c;

这东西应该有用。但为了更好地理解,您应该使用大括号。

? : - 三元运算符 - 得到 3 个参数和 returns 个结果

  iResult = condition ? onTrue : onFalse;

在我们的例子中,我们必须结合两个个三元运算符:

  iResult = condition1 ? onTrue1 
          : condition2 ? onTrue2
          : onFalse1and2;

可以(请不要忘记格式化,让代码保持可读

  iResult = a > b && a > c ? a
          : b > a && b > c ? b
          : c;

或者我们可以去掉iResult,把它压缩成

  public static int Max(int a, int b, int c) =>
      a > b && a > c ? a
    : b > a && b > c ? b
    : c;