单独模块中枚举的未定义标识符错误

时间:2014-02-01 18:02:20

标签: d

我在使用单独模块中定义的枚举时遇到了麻烦。 当我尝试访问它时,我收到“Undefined identifier”错误:

// CodeEnum.d

enum CodeEnum
{
    OK = 200,
    FAIL = 400
}

unittest
{
    auto e = CodeEnum.OK; // Works!
}

-

// Reply.d

import CodeEnum;

unittest
{
    auto.e = CodeEnum.OK; // Error: undefined identifier 'OK'
}

我做错了什么?

顺便说一句,我也把它发布到了digitalmars-d-learn,但是我没有在互联网上看到我的电子邮件(列表存档或论坛) - 列表是以某种方式调节的?

2 个答案:

答案 0 :(得分:6)

由于模块名为CodeEnumCodeEnum.OK引用模块OK中的符号CodeEnum

使用CodeEnum.CodeEnum.OK,或使用选择性导入:import CodeEnum: CodeEnum;,或为模块或枚举提供不同的名称。

答案 1 :(得分:2)

您的模块名称和枚举名称存在冲突。重命名要编译的代码的枚举或模块名称。