2010-09-01 21 views
4

我有一个类型(例如通过反射)。获取特定框架System.Type的c#特定名称?

我有Name属性的值,例如String ...这是“System.String”。我想看到“字符串”(“int”而不是“System.Int32”等等)。

框架(或语言)中的任何东西都可以给我吗?我是否可以将框架类型名称转换为语言类型名称(或者,也可以先输入语言类型名称)?

+1

什么是更有趣的是,你会如何解决这个问题渲染泛型类型。 C#认为是“C .D ”的类型被CLR呈现为“C'1 + D'1 [System.Int32,System.String]”。 – 2010-09-01 18:23:21

+0

'Nullable '也可能是一个值得缩短到'T'的边界情况 – 2010-09-01 18:26:29

回答

8

可以使用的CodeDOM类获得特定语言的类型别名

var cs = new CSharpCodeProvider(); 
var vb = new VBCodeProvider(); 

var type = typeof (int); 
Console.WriteLine("Type Name: {0}", type.Name); // Int32 
Console.WriteLine("C# Type Name: {0}", cs.GetTypeOutput(new CodeTypeReference(type))); // int 
Console.WriteLine("VB Type Name: {0}", vb.GetTypeOutput(new CodeTypeReference(type))); // Integer