Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取内置类型别名的字符串表示形式_C# - Fatal编程技术网

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我猜是这个,看起来像是一个完全重复的