代码之家  ›  专栏  ›  技术社区  ›  George Mauer

C:如何查找运行时类型的默认值?[复制品]

  •  6
  • George Mauer  · 技术社区  · 15 年前

    所以在代码中给定一个静态类型,您可以

    var defaultMyTypeVal = default(MyType);
    

    如果给定一个类型为的变量,那么如何执行相同的操作,以便在运行时使用它?

    换句话说,我如何在不使用大量if语句或使用泛型的情况下实现以下方法(因为我在编译时不知道我要传递给方法的类型)?

    public object GetDefaultValueForType(Type type) {
      ....
    }
    
    1 回复  |  直到 14 年前
        1
  •  11
  •   Community Mohan Dere    8 年前

    this 职位:

    public object GetDefaultValue(Type t)
    {
        if (t.IsValueType) {
            return Activator.CreateInstance(t);
        } else {
            return null;
    }