在运行时确定占位符的类型c#

时间:2013-01-28 22:22:11

标签: c# .net generics methods

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

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

4 个答案:

答案 0 :(得分: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
        }
    }

答案 1 :(得分:2)

is可用于检查参数类型

if (someobject is SomeType)//...

或者,或者......

        Type constructedType = typeof(T);
        if (constructedType == typeof(SomeType))//... 

答案 2 :(得分:1)

可以尝试

typeof(T) == typeof(desiredType)

例如:

typeof(T) == typeof(int)

答案 3 :(得分:1)

    if (someobj.GetType() == typeof(ClassA)) { /* do opertion */},