Giving your ♦ the benefit of the doubt, I guess I must be missing something that explains why this question isn't entirely too broad. Did you read the C# specification? The behavior is intentional and not obscure at all. There are many examples of "practical utility", far too many to describe in a Stack Overflow answer. The basic language design philosophy behind this is that each constructed generic type is in fact a completely different type; so static members exist uniquely for each constructed generic type, just as they would for any other separate and unique type. — Peter Duniho 45 mins ago