如何从类方法返回枚举元素?

Posted

技术标签:

【中文标题】如何从类方法返回枚举元素?【英文标题】:How to return an enum element from a class method? 【发布时间】:2019-10-25 19:54:29 【问题描述】:

我想从一个类方法中返回一个枚举元素,以便在其他类方法或函数中进一步使用它。我如何返回枚举元素或正确使用它以获得与在下面的非“分类”示例中使用它相同的结果?

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);

当我执行 Codesnipped 时,我的假设是,我得到了 RED 和 GREEN 的输出。相反,我得到以下信息:

$ dart test.dart

红色

未处理的异常: NoSuchMethodError:方法“setColor” 在 null 上调用。 接收方:空 尝试调用: setColor(Instance of '颜色')

【问题讨论】:

因为你的 abc 对象为空?试试这个:testClass abc = testClass(); 【参考方案1】:

默认情况下,abc 的值被引用为 null。因为它没有初始化。 您需要初始化 abc 对象,如下所示:

testClass abc = testClass();

【讨论】:

以上是关于如何从类方法返回枚举元素?的主要内容,如果未能解决你的问题,请参考以下文章

目标 C:从类方法返回一个对象数组

从类成员返回智能指针的正确方法?

如何将对象向量从类返回到 main.cpp

Java如何循环遍历枚举类元素或者查看某元素是否存在

Java如何循环遍历枚举类元素或者查看某元素是否存在

如何直接从类调用从接口继承的方法?