Est-il possible en C # de comparer deux objets de types inconnus (y compris les types référence et valeur) à l'aide de leurs comparateurs de types s'ils existent?
Le but est d’écrire une fonction qui aurait une signature comme celle-ci:
public bool Compare(object a, object b)
{
// compare logic goes here
}
Qui reviendrait
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
Existe-t-il une approche générique pour résoudre ce problème qui conviendrait pour tout type d’objet?