Why is this .NET enumeration allowed to have a comma in the last field?
Does this have any special meaning?
[FlagsAttribute] public enum DependencyPropertyOptions : byte { Default = 1, ReadOnly = 2, Optional = 4, DelegateProperty = 32, Metadata = 8, NonSerialized = 16, }
It has no special meaning, just the way the compiler works, it's mainly for this reason:
[FlagsAttribute] public enum DependencyPropertyOptions : byte { Default = 1, ReadOnly = 2, Optional = 4, DelegateProperty = 32, Metadata = 8, NonSerialized = 16, //EnumPropertyIWantToCommentOutEasily = 32 }
By comment request: This info comes straight out of the C# Specification (Page 355/Section 17.7)
Like Standard C++, C# allows a trailing comma at the end of an array-initializer. This syntax provides flexibility in adding or deleting members from such a list, and simplifies machine generation of such lists.
Also (to Nick Craver post) its much easier to add new enumerations.
This behaviour appropriate not uniquely to enums. Consider following:
var list = new int[] { 1, 2, 3, };
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With