假设您有一个与方法myMethod相关的MethodInfo:
void myMethod(int param1, int param2) { }
并且您想要创建一个表示方法签名的字符串:
string myString = "myMethod (int, int)";
循环使用MethodInfo参数,我可以通过调用参数类型'ToString方法来实现这些结果:
"myMethod (System.Int32, System.Int32)"
如何改进并产生上述结果?
答案 0 :(得分:0)
据我所知,没有任何内置功能可以将基元(System.Int32
)的真实类型名称转换为内置别名({{1} })。由于这些别名的数量非常少,因此编写自己的方法并不困难:
int
话虽如此,如果用户实际上 在public static string GetTypeName(Type type)
{
if (type == typeof(int)) // Or "type == typeof(System.Int32)" -- same either way
return "int";
else if (type == typeof(long))
return "long";
...
else
return type.Name; // Or "type.FullName" -- not sure if you want the namespace
}
而不是System.Int32
中输入(当然这将是完全合法的),这种技术仍会打印出“int ”。你可以做很多事情,因为int
两种方式都是相同的 - 所以你无法找出用户实际键入的变体。
答案 1 :(得分:0)