C#-通过反射获得简单类型的用户友好名称?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)
Type t = typeof(bool);
string typeName = t.Name;

在这个简单的例子中,typeName会有值"Boolean"。我想知道是否/如何让它说出来"bool"

对于int / Int32,double / Double,string / String也是如此。

提问于
用户回答回答于
using CodeDom;
using Microsoft.CSharp;

// ...

Type t = typeof(bool);

string typeName;
using (var provider = new CSharpCodeProvider())
{
    var typeRef = new CodeTypeReference(t);
    typeName = provider.GetTypeOutput(typeRef);
}

Console.WriteLine(typeName);    // bool
用户回答回答于

你称之为“友好名称”是特定于语言的,而不是绑定到框架上。因此,在框架中提供这些信息是毫无意义的,MS设计准则要求你为方法名称等使用框架名称(如ToInt32等)。

扫码关注云+社区