Как вернуть элемент enum из метода класса? - PullRequest
0 голосов
/ 11 июня 2019

Я хочу вернуть элемент enum из метода класса для дальнейшего использования его в других методах или функциях классов.Как мне вернуть элемент enum или использовать его правильно, чтобы получить тот же результат, что и в не классифицированном примере ниже?

enum colors { RED, GREEN }

class testClass {
  colors _color;

  colors get color {
    return _color;
  }

  void setColor(colors color) {
    _color = color;
  }
}

main() {
  void test(colors color) {
    switch (color) {
      case colors.RED:
        {
          print('RED');
        }
        break;
      case colors.GREEN:
        {
          print('GREEN');
        }
        break;
    }
  }

  test(colors.RED);

  testClass abc;
  abc.setColor(colors.GREEN);

  test(abc.color);
}

Когда я выполняю этот код, я предполагал, что получаювыход красный и зеленый.Вместо этого я получаю следующее:

$ dart test.dart

RED

Необработанное исключение: NoSuchMethodError: Метод 'setColor' был вызван для нуля.Получатель: ноль. Пробный вызов: setColor (экземпляр 'colors')

1 Ответ

1 голос
/ 11 июня 2019

По умолчанию значение abc ссылается на ноль.Так как его не инициализировано.Вам нужно инициализировать объект abc следующим образом:

testClass abc = testClass();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...