8

我有一个简单的功能:

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

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

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

4

2 回答 2

16

如果你这样称呼它——

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();

于 2012-10-21T12:58:08.840 回答
3

我猜你是这样称呼它的:getType(typeof(string)). typeof(abc)是类型的值Type(或者RuntimeType是实现细节)。

像这样称呼它:

getType("")

于 2012-10-21T12:53:31.423 回答