类型创建默认实例[复制](Create default instance of type [dupl

2019-06-24 00:57发布

这个问题已经在这里有一个答案:

  • 默认(类型)方案相当于 13个回答

什么是反射相当于:

default(object);  //null

当我没有类型直到运行时,如

public void Method(Type type)
{
   var instance = type.CreateDefault(); //no such method exists, but I expect there is a way of doing this?
} 

Answer 1:

对于任何引用类型,默认值是空实例。 对于任何类型的值,可以通过获得默认值Activator.CreateInstance 。 但是,当你有一个变量称为instance表明您希望有一个实际的实例 ,而不是一个空引用...因此,尽管你可以这样做:

public object GetDefaultValue(Type type)
{
    return type.IsValueType ? Activator.CreateInstance(type) : null;
} 

......这不是真的清楚这是多么有用的。 的是类型,这是不一样的类型的默认实例的默认



文章来源: Create default instance of type [duplicate]