This question already has answers here:
Closed 6 years ago.
What is the reflective equivalent of :
default(object); //null
When I do not have the type until runtime, e.g.
public void Method(Type type)
{
var instance = type.CreateDefault(); //no such method exists, but I expect there is a way of doing this?
}
For any reference type, the default value is a null instance. For any value type, the default value can be obtained via Activator.CreateInstance
. But when you have a variable called instance
that suggests you want an actual instance rather than a null reference... So while you can do this:
public object GetDefaultValue(Type type)
{
return type.IsValueType ? Activator.CreateInstance(type) : null;
}
... it's not really clear how useful this is. The is the default value of the type, which isn't the same as a default instance of the type.