L'intention de la question est un peu floue mais j'ai trouvé cette question où je cherchais un moyen de vérifier si 2 objets sont du même type. Voici ma solution pour cela et quelques tests qui réussissent tous:
using NUnit.Framework;
[TestFixture]
public class TypeEqualityChecks
{
class Base_Data { }
class Person : Base_Data { }
class Phone : Base_Data { }
class AnotherClass
{
public static bool CheckObjects(Base_Data d1, Base_Data d2) {
return d1.GetType() == d2.GetType();
}
}
[Test]
public static void SameTypesAreEqual() {
Base_Data person1 = new Person();
Base_Data person2 = new Person();
Assert.IsTrue(AnotherClass.CheckObjects(person1, person2));
}
[Test]
public static void DifferentActualTypesAreNotEqual() {
Base_Data person = new Person();
Base_Data phone = new Phone();
Assert.IsFalse(AnotherClass.CheckObjects(person, phone));
}
[Test]
public static void BaseTypeAndChildTypeAreNotEqual() {
Base_Data baseData = new Base_Data();
Base_Data person = new Person();
Assert.IsFalse(AnotherClass.CheckObjects(baseData, person));
}
}