-1

我正在根据用户生成的条件编写一个通用警报系统。测试值和实际值作为对象处理,因为它们可以是数字、布尔值或字符串,具体取决于所选属性。它需要容错并优雅地失败。

所以我正在寻找 C# 中的通用函数来对各种数据类型进行比较(更大/更少/相等)。

使用 IComparable 接口不起作用,因为它是特定于类型的,例如,如果 testValue 是 Int32 并且 comparsonValue 是十进制,这将崩溃:

object testValue = (int)10;
object comparisonValue = (decimal)11;

var comparison = ((IComparable)testValue).CompareTo(comparisonValue)

// Crashes with {System.SystemException}: {"Object must be of type Int32."}

C#中还有其他通用比较函数吗?我希望我不必自己编写所有代码。

4

1 回答 1

0

因此,面对 3 次反对票(好吧,没想到问题那么糟糕......),我将编写自己的自定义比较器,而不是搜索非特定类型的 IComparer.CompareTo 版本。

于 2014-01-16T03:25:49.437 回答