我在使用单独模块中定义的枚举时遇到了麻烦。 当我尝试访问它时,我收到“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,但是我没有在互联网上看到我的电子邮件(列表存档或论坛) - 列表是以某种方式调节的?
答案 0 :(得分:6)
由于模块名为CodeEnum
,CodeEnum.OK
引用模块OK
中的符号CodeEnum
。
使用CodeEnum.CodeEnum.OK
,或使用选择性导入:import CodeEnum: CodeEnum;
,或为模块或枚举提供不同的名称。
答案 1 :(得分:2)
您的模块名称和枚举名称存在冲突。重命名要编译的代码的枚举或模块名称。