Just a quickie that’s been bothering me:
The types MyType and MyType<T> are not the same type, as you might already know. Also, MyType<int> and MyType<string> are not of the same type. So, how do I find out if MyType<int> and MyType<string> are from the same MyType<T>?
I will use the Type.GetGenericTypeDefinition() method like so:
MyType<int> i, MyType<string> s;
bool b = s.GetType().GetGenericTypeDefinition() == i.GetType().GetGenericTypeDefinition();