How to check if an object its *exactly* a class, not a derived one?
c#, inheritance
Solution
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.
Problem
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.