C# 如何获取内置类型别名的字符串表示形式
如果我使用C# 如何获取内置类型别名的字符串表示形式,c#,C#,如果我使用typeof(int).Name,我会得到“Int32”。 有没有一种方法可以直接从系统中获取“int”,而不必对“Int32”进行任何字符串操作?我使用字典来实现这一点。很可能是几年前从另一个StackOverflow答案中得到的,但目前找不到 private static readonly Dictionary<Type, string> Aliases = new Dictionary<Type, string>() { { typeof(
typeof(int).Name
,我会得到“Int32”。
有没有一种方法可以直接从系统中获取“int”,而不必对“Int32”进行任何字符串操作?我使用字典来实现这一点。很可能是几年前从另一个StackOverflow答案中得到的,但目前找不到
private static readonly Dictionary<Type, string> Aliases =
new Dictionary<Type, string>()
{
{ typeof(byte), "byte" },
{ typeof(sbyte), "sbyte" },
{ typeof(short), "short" },
{ typeof(ushort), "ushort" },
{ typeof(int), "int" },
{ typeof(uint), "uint" },
{ typeof(long), "long" },
{ typeof(ulong), "ulong" },
{ typeof(float), "float" },
{ typeof(double), "double" },
{ typeof(decimal), "decimal" },
{ typeof(object), "object" },
{ typeof(bool), "bool" },
{ typeof(char), "char" },
{ typeof(string), "string" },
{ typeof(void), "void" }
};
专用静态只读字典别名=
新字典()
{
{typeof(byte),“byte”},
{typeof(sbyte),“sbyte”},
{typeof(short),“short”},
{typeof(ushort),“ushort”},
{typeof(int),“int”},
{typeof(uint),“uint”},
{typeof(long),“long”},
{typeof(ulong),“ulong”},
{typeof(float),“float”},
{typeof(double),“double”},
{typeof(decimal),“decimal”},
{typeof(object),“object”},
{typeof(bool),“bool”},
{typeof(char),“char”},
{typeof(string),“string”},
{typeof(void),“void”}
};
您能否添加一个从类型
映射到字符串
的词典并进行查找?请参阅中的讨论。使用“C#native方式”编写类型名并不是特别有用。你为什么要这么做?int
是一种C#ism,运行库中没有任何东西知道他的语言特定名称(而且,尽管C#不是唯一的.NET语言,但也不应该有)。您可以为C#有专用名称的所有类型编写一个简单的查找表;这是一个固定的列表。可以想象,你也可以依靠Roslyn(不知何故),但这似乎是一种巨大的过度杀伤力。这是否回答了你的问题?确切的duplicate@PavelAnikhouski啊,是的,这实际上是完全相同的情况,但在建议中没有看到。我将把它标为复制品。谢谢。:)<代码>字符串结果=别名.TryGetValue(感兴趣的类型,输出字符串值)?值:typeOfInterest.Name代码>我猜是这个,看起来像是一个完全重复的