C# 的 Math.Max() 实现与数学实现相比有什么好处吗?

O S*_*O S 2 c#

在 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

Swe*_*per 5

其一,数学实现是不正确的,因为它不处理上溢/下溢。

如果你这样做:

// suppose Max is implemented the "mathematical" way
Max(int.MaxValue, int.MaxValue - 1)
Run Code Online (Sandbox Code Playgroud)

它会给出-1。