I’ve heard people say a few different things about the DefaultValue attribute including:
- “It sets the value of the property before anything else uses it.”
- “It doesn’t work for autoproperties.”
- “It’s only for decoration. You must manually set actual default values.”
Which (if any) is right? Does DefaultValue actually set default values? Are there cases where it doesn’t work? Is it best just not to use it?
The place where I typically used
DefaultValueis for classes which are serialized/deserialized to XML. It does not set the default value during instantiation and doesn’t impact autoproperties.From MSDN:
MSDN – DefaultValueAttribute Class
Edit: As Roland points out, and as others mentioned in their answers the attribute is also used by the Form Designer