I know the ‘default’ keyword returns the default value of a statically determined type, as shown for instance in this question.
However, given an instance of a type, is there a simple way to get the default value of this type, dynamically ? The only way I found while googling is this :
static object DefaultValue(Type myType) { if (!myType.IsValueType) return null; else return Activator.CreateInstance(myType); }
But I’d like to avoid the Activator class if possible.
This is likely your best route.
I wouldn’t be afraid of using the Activator class here. This is a pretty standard class that is depended on by the compilers. For instance this VB code
Translates into roughly this code