Enumeration Class Restrictions

Enumeration classes restrict certain aspects of their use and definition:

  • Enumeration classes are implicitly Sealed. You cannot define a subclass of an enumeration class because doing so would expand the set.

  • The properties of value-based enumeration classes are immutable. Only the constructor can assign property values. MATLAB® implicitly defines the SetAccess attributes of all properties defined by value-based enumeration classes as immutable. You cannot set the SetAccess attribute to any other value.

  • All properties inherited by a value-based enumeration class that are not defined as Constant must have immutable SetAccess.

  • The properties of handle-based enumeration classes are mutable. You can set property values on instances of the enumeration class. See Mutable Handle vs. Immutable Value Enumeration Members.

  • An enumeration member cannot have the same name as a property, method, or event defined by the same class.

  • Enumerations do not support colon (a:b) operations. For example, FlowRate.Low:FlowRate.High causes an error even if the FlowRate class derives from a numeric superclass.

  • Classes that define enumerations cannot restrict properties of the same class to an enumeration type. Create a separate enumeration class to restrict property values to an enumeration. For information on restricting property values, see Example of Restricted Property.

  • If the primary enumeration member sets the Hidden attribute, then the secondary member (one with the same underlying value) must also set the Hidden attribute. For more information, see

Related Topics