代码之家  ›  专栏  ›  技术社区  ›  Nate Zaugg

如何找出(类型是类型)C#

  •  2
  • Nate Zaugg  · 技术社区  · 14 年前

    我使用两种类型,一种是通用的,另一种不是。我没有对象实例,但我想知道 if ( MyType is T ) 或者换句话说 if ( MyType inherits T)

    我再次寻找:

    if ( Truck is Vehicle )
    

    if ( MyTruckObject is Vehicle)
    
    3 回复  |  直到 12 年前
        1
  •  5
  •   David Radcliffe    14 年前

    尝试:

    if (typeof(Truck).IsSubclassOf(typeof(Vehicle)))
    
        2
  •  11
  •   Stephen Cleary    14 年前
        3
  •  2
  •   Matthew Abbott    14 年前

    好吧,给定一个泛型类型参数,您可以执行如下操作:

    if (typeof(Vehicle).IsAssignableFrom(typeof(T))) 
    {
    
    }
    

    或者,对方法应用约束以确保它:

    public void DoSomething<T>() where T : Vehicle 
    {
    
    }