首页 > 解决方案 > C# 的 Math.Max() 实现与数学上的实现相比有什么好处吗?

问题描述

在 C# Math.Max() 中实现为:

   [NonVersionable]
   public static int Max(int val1, int val2)
   {
       return (val1 >= val2) ? val1 : val2;
   }

虽然我相信它也可以实现为:

在此处输入图像描述

C# 的实现是否有任何好处,例如在数学上实现它的效率?

(a + b + Math.Abs(a-b)) /2

标签: c#

解决方案


一方面,数学实现不正确,因为它不处理上溢/下溢。

如果你这样做:

// suppose Max is implemented the "mathematical" way
Max(int.MaxValue, int.MaxValue - 1)

它会给-1。


推荐阅读