2010-09-01 23 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