.NET сама среда не знает о конкретных ключевых слов C #. Но поскольку их всего около десятка, вы можете просто вручную создать таблицу, содержащую нужные вам имена.
Это может быть Dictionary<Type,string>
:
private static Dictionary<Type,string> friendlyNames=new Dictionary<Type,string>();
static MyClass()//static constructor
{
friendlyNames.Add(typeof(bool),"bool");
...
}
public static string GetFriendlyName(Type t)
{
string name;
if( friendlyNames.TryGet(t,out name))
return name;
else return t.Name;
}
Этот код не заменяет Nullable<T>
на T?
и не преобразует дженерики в форму, используемую в C #.