在 C# 中,Math.Max() 的实现如下:
[NonVersionable]
public static int Max(int val1, int val2)
{
return (val1 >= val2) ? val1 : val2;
}
Run Code Online (Sandbox Code Playgroud)
虽然我相信它也可以实现为:
C# 的实现是否比数学实现有任何优势,例如效率?
(a + b + Math.Abs(a-b)) /2
其一,数学实现是不正确的,因为它不处理上溢/下溢。
如果你这样做:
// suppose Max is implemented the "mathematical" way
Max(int.MaxValue, int.MaxValue - 1)
Run Code Online (Sandbox Code Playgroud)
它会给出-1。