0
public void compare<T>(T someobject)
{
  .....
  .....
}

现在我想T在运行时确定类型并根据它进行不同的操作。我试过使用typeof但无济于事。

4

4 回答 4

2

typeof 在运行时应该可以正常工作。

    public void compare<T>(T someobject)
    {
        if (typeof(T) == typeof(int))
        {
            // do stuff
        }
        else if (typeof(T) == typeof(something else))
        {
            // do other stuff
        }
    }
于 2013-01-28T22:27:02.810 回答
2

is可用于检查参数类型

if (someobject is SomeType)//...

或者,另一种...

        Type constructedType = typeof(T);
        if (constructedType == typeof(SomeType))//... 
于 2013-01-28T22:31:58.923 回答
1

可以尝试

typeof(T) == typeof(desiredType)

例如:

typeof(T) == typeof(int)
于 2013-01-28T22:30:49.153 回答
1
    if (someobj.GetType() == typeof(ClassA)) { /* do opertion */},
于 2013-01-28T22:38:24.690 回答