【发布时间】:2010-12-02 16:29:44
【问题描述】:
是否可以在 C# 中使用它们的类型比较器来比较两个未知类型的对象(包括引用类型和值类型)?
目标是编写一个具有如下签名的函数:
public bool Compare(object a, object b)
{
// compare logic goes here
}
哪个会返回
Compare(100d, 100d) == true
Compare(100f, 100f) == true
Compare("hello", "hello") == true
Compare(null, null) == true
Compare(100d, 101d) == false
Compare(100f, null) == false
// Use type comparators where possible, i.e.:
Compare(new DateTime(2010, 12, 01), new DateTime(2010, 12, 01)) == true
Compare(new DateTime(2010, 12, 01), new DateTime(2010, 12, 02)) == false
Compare(new DateTime(2010, 12, 01), null) == false
是否有一种通用的方法可以解决这个问题,适用于任何类型的对象?
【问题讨论】: