.NET Framework en sí no sabe nada de C# palabras clave específicas. Pero dado que solo hay una docena de ellos, puede simplemente crear manualmente una tabla que contenga los nombres que desea.
Esto podría ser un 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;
}
Este código no pretende sustituir Nullable<T>
con T?
y no transforma los genéricos en el formulario C# utiliza.
posible duplicado de [¿Cómo puedo obtener el nombre primitivo de un tipo en C#? ] (http://stackoverflow.com/questions/4369737/how-can-i-get-the-primitive-name-of-a-type-in-c) –
Contrariamente a las respuestas dadas hasta ahora, mira el duplicar vinculado anteriormente para un enfoque más positivo :) (Suponiendo que esté contento de utilizar CSharpCodeProvider en lugar de reflexión "simple") –