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.