{

How to add Methods or Values to Enums in Dart | Flutter By Example


 add Methods or Values to Enums in Dart or flutter

How to add methods to Enum in Dart using Extension

Dart 2.6 version, Extensions are added to classes, and Enum adds extra features.

Defined Enum class as given below

enum WEEK { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }

Next, Add a method to Enum using the extension feature as given below Declare and place this extension in the same class where Enum is defined.

extension WeekExtension on WEEK {
  bool get isWeekend {
    switch (this) {
      case WEEK.SUNDAY:
        return true;
      case WEEK.SATURDAY:
        return true;
      default:
        return false;
    }
  }
}

In the extension, Added isWeekend method that checks given Enum is weekend or not. Used switch case expression comparison with Enum constants.

The main method, Defined Enum constant, calls enum method similar to class methods.

WEEK sat = WEEK.SATURDAY;
print(sat.isWeekend); //true

Here is an example of Dart Enum methods extension example

enum WEEK { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }

extension WeekExtension on WEEK {
  bool get isWeekend {
    switch (this) {
      case WEEK.SUNDAY:
        return true;
      case WEEK.SATURDAY:
        return true;
      default:
        return false;
    }
  }
}

void main() {
  WEEK sat = WEEK.SATURDAY;
  WEEK mon = WEEK.MONDAY;

  print(sat.isWeekend); //true
  print(mon.isWeekend); // false
}

How to add Arguments or values to Enum in Dart

You can add an argument to Enum since the dart 2.7 version.

To add arguments to Enum in Dart

  • First, Make sure that the dart version is 2.7 in pubspec.yaml
  • Declare final properties or variables to Enum declaration
  • Define Enum with the constructor of variables.
  • Define Enum constants with values
  • You can access Enum properties Enum object followed by a dot(.) and property name.

Here is an example to pass parameters to the Enum object.

enum WEEKEND {
  SATURDAY("saturday", 1),
  SUNDAY("sunday", 1);

  const WEEKEND(this.name, this.value);
  final String name;
  final int value;
}

void main() {
  WEEKEND sat = WEEKEND.SATURDAY;

  print(sat.toString()); //WEEK.MONDAY
  print(sat.name); // zero
  print(sat.value); // WEEK
}

Conclusion

Enum is similar to classes in terms of defining properties and methods. You can add extension methods.

THE BEST NEWSLETTER ANYWHERE
Join 6,000 subscribers and get a daily digest of full stack tutorials delivered to your inbox directly.No spam ever. Unsubscribe any time.

Similar Posts
Subscribe
You'll get a notification every time a post gets published here.





Related posts

How to convert Double to Integer or Integer to double in Dart| Flutter By Example

Perl How to: Find a Given Variable String is numeric or not

Dart/Flutter: Check if String is Empty, Null, or Blank example

How to generate Unique Id UUID in Dart or Flutter Programming| Dart or Flutterby Example

How to Sort List of numbers or String in ascending and descending in Dart or Flutter example

Dart Enum comparison operator| Enum compareByIndex example| Flutter By Example

Dart Example - Program to check Leap year or not