一般比较功能,非特定类型,容错

时间:2014-01-16 01:25:20

标签: c# decimal icomparable int32

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

所以我正在寻找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#中是否还有其他通用比较功能?我希望我不必自己编码所有内容。

1 个答案:

答案 0 :(得分:0)

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