There is any way to determine if an object is exactly a class and not a derived one of that?
For instance:
class A : X { }
class B : A { }
I can do something like this:
bool isExactlyA(X obj)
{
return (obj is A) && !(obj is B);
}
Of course if there are more derived classes of A
I'd have to add and conditions.
Generalizing snicker's answer:
public static bool IsExactly<T>(this object obj) where T : class
{
return obj != null && obj.GetType() == typeof(T);
}
and now you can say
if (foo.IsExactly<Frob>()) ...
Caveat: use extension methods on object judiciously. Depending on how widely you use this technique, this might not be justified.
in your specific instance:
bool isExactlyA(X obj)
{
return obj.GetType() == typeof(A);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With