我正在根据用户生成的条件编写一个通用警报系统。测试值和实际值作为对象处理,因为它们可以是数字、布尔值或字符串,具体取决于所选属性。它需要容错并优雅地失败。
所以我正在寻找 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#中还有其他通用比较函数吗?我希望我不必自己编写所有代码。