我有一个简单的功能:
public string getType(object obj){
Type type = obj.getType();
return type.FullName;
}
如果对在运行时创建的字符串对象使用此函数,则该函数返回“System.RuntimeType”...
但它应该返回“System.String”......
答案 0 :(得分:17)
如果你这样称呼它 -
string a = "";
string type = getType(a);
它将返回System.String
但如果你这样打电话 -
string a = "";
string type = getType(a.GetType());
然后它将返回System.RuntimeType
此外,您的方法中存在小typo
-
Type type = obj.getType();
应为Type type = obj.GetType();
答案 1 :(得分:3)
我猜你这样叫:getType(typeof(string))
。 typeof(abc)
是Type
类型的值(或RuntimeType
,这是一个实现细节。)
这样称呼:
getType("")