来自object的GetType返回RuntimeType

时间:2012-10-21 12:48:43

标签: c#

我有一个简单的功能:

public string getType(object obj){
Type type = obj.getType();
return type.FullName;
}

如果对在运行时创建的字符串对象使用此函数,则该函数返回“System.RuntimeType”...

但它应该返回“System.String”......

2 个答案:

答案 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("")