typeof(T).Name //would work
Но зависеть от этого и принимать решения на его основе, вероятно, не очень хорошая идея.
Важным правилом здесь является то, что вам, вероятно, следует использовать FullName, когда это возможно.
Например, в операторах переключения, в блоках if else или в словарных ключах.
Имя класса - не идеальная вещь, от которой можно зависеть
иметь одинаковое имя класса в разных пространствах имен. NamespaceA.String и NamespaceB.String вполне возможны ...