◆ typeof(List<>)
◆ type parameter (<>の内側)を省略できる 

typeof(List<>).IsGenericTypeDefinition
// true

typeof(Dictionary<,>).IsGenericTypeDefinition
// true

typeof に generics の型を省略して書くことができました

初めて知りました
すごく驚きです
こんな書き方ができたなんて

typeof(List<int>)
// [System.Collections.Generic.List`1[System.Int32]]

typeof(List<>)
// [System.Collections.Generic.List`1[T]]

こんな感じで型が T という Generics の型引数のままになっています

Generics の型が決まってないこの状態の型は IsGenericTypeDefinition が true です
int などの型が決まってるものは false になります

どちらも IsGenericType は true です


一応 型引数付きの型から 取得ができます
typeof(List<int>).GetGenericTypeDefinition() == typeof(List<>)
// true

いつも適当に int を入れて GetGenericTypeDefinition() してたのが 楽になりました

ところで 型引数の省略ですがやっぱり type 限定のようで他のところで省略するとエラーになります
typeof 専用の構文みたい