代码之家  ›  专栏  ›  技术社区  ›  Theofanis Pantelides

查找类型参数的类型[重复]

  •  9
  • Theofanis Pantelides  · 技术社区  · 14 年前

    这个问题已经有了答案:

    考虑以下事项:

    private T getValue<T>(String attr)
    { ... }
    

    我如何检查是什么类型的?

    我在想:

    if("" is T) // String
    if(1 is T) // Int32
    

    有更好的方法吗?

    4 回复  |  直到 9 年前
        1
  •  18
  •   Unsliced    14 年前

    这是功能 typeof(T) ?

        2
  •  5
  •   Marco Spatz    14 年前

    你可以使用这个功能 typeof(T) ?

    要检查字符串,请执行以下操作

    if(typeof(T) == typeof(string)) 做某事

        3
  •  5
  •   Konrad Rudolph    14 年前

    如果需要获取泛型类型参数的类型,那么这几乎肯定是函数设计中的一个缺陷;这是 相反的 _普通__。因此,使用重载代替。

    除此之外,没有执照的人已经给出了确定 T .

        4
  •  2
  •   Kerem Kusmezer    14 年前

    实际上有两个方法可以做到这一点,如果期望的类派生自同一个类、接口或抽象类,则可以在泛型签名中轻松做到这一点。

    t getValue()其中t:class,这将强制整个t类型为引用类型。 或 t getValue()其中t:IDisposable,这将强制整个t类型实现IDisposable。

    对于您的案例,typeof(t)将解决您的问题,但在本例中,使方法不是泛型的。