我正在使用反射来打印方法签名,例如
foreach (var pi in mi.GetParameters()) {
Console.WriteLine(pi.Name + ": " + pi.ParameterType.ToString());
}
Run Code Online (Sandbox Code Playgroud)
这很好用,但它打印出基元类型为"System.String"而不是"string"和"System.Nullable`1 [System.Int32]"而不是"int?".有没有办法在代码中查找参数的名称,例如
public Example(string p1, int? p2)
Run Code Online (Sandbox Code Playgroud)
版画
p1: string
p2: int?
Run Code Online (Sandbox Code Playgroud)
代替
p1: System.String
p2: System.Nullable`1[System.Int32]
Run Code Online (Sandbox Code Playgroud) Type t = typeof(bool);
string typeName = t.Name;
Run Code Online (Sandbox Code Playgroud)
在这个简单的例子中,typeName将具有该值"Boolean".我想知道是否/如何让它说出来"bool".
对于int/Int32,double/Double,string/String也是如此.
GetType().ToString() 返回对象的 FullName。我想要您通常用来实例化该对象的名称,即 int 而不是 Int32。有没有办法做到这一点?