Я плохо знаю термины и концепции ООП, по-этому могу что-то перепутать. По-этому, перейду сразу к примеру.
Есть классы:
private class Base { }
private class A : Base { }
private class B : A { }
static void Main(string[] args)
{
Base b = new B();
Console.WriteLine(b is A); //true
Console.WriteLine(b is B); //true
B bb = new B();
Console.WriteLine(bb is A); //true
Console.WriteLine(bb is B); //true
Console.ReadLine();
}
Мне надо проверить, является ли переменная экземпляром класса B. А он выдаёт true даже при сравнении b с A. И так, видимо, будет для всей иерархии
То есть, если сравниваемые классы принадлежат одной иерархии, то всегда будет выдано true.
А как тогда быть?
Использовать .GetType().Name?