Я плохо знаю термины и концепции ООП, по-этому могу что-то перепутать. По-этому, перейду сразу к примеру.
Есть классы:
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
?