我有一个C#文件A,它定义了一些公共枚举和公共结构。现在我需要为它们定义errorCode。我在文件B中定义了一个名为SubsystemErrorCode的枚举.A和B都没有类。它们在同一个命名空间中在文件A的一个结构中,我尝试使用SubsystemErrorCode枚举,但它给我错误告诉我: 错误1找不到类型或命名空间名称'SubsystemErrorCode'(您是否缺少using指令或程序集引用?)
如果我将SubsystemErrorCode移动到同一个文件中。没有错误。但我真的希望他们分开。我怎样才能做到这一点?感谢,
档案A:
namespace SystemSoftware {
public struct StatusMessageBody {
public ProcessControlStatus State;
public StatVal LVP_OK;
public SubsystemErrorCode LVP_ERROR_CODE;
}
}
档案B:
namespace SystemSoftware
{
//public class ErrorCode
//{
public enum SubsystemErrorCode : byte
{
NoError = 0,
EPCSS_CPU_ERROR = 1,
LVPS_ERROR
}
//}
}
答案 0 :(得分:4)
问题的唯一原因是文件A和B不在同一个项目中。
在这种情况下,具有文件A的项目必须引用定义文件B的项目。
答案 1 :(得分:0)
认为您缺少USING语句或未添加对库的引用。
答案 2 :(得分:-1)
将您的枚举文件更改为此
namespace SystemSoftware.Enums
{
public enum SubsystemErrorCode : byte
{
NoError = 0,
EPCSS_CPU_ERROR = 1,
LVPS_ERROR
}
}
并在您的文件A中将其置于顶部(在using System;
下)
using SystemSoftware.Enums;
或者您可以在文件A中尝试
public SystemSoftware.Enums.SubsystemErrorCode LVP_ERROR_CODE;
而不是
public SubsystemErrorCode LVP_ERROR_CODE;
编辑:忘了说,我假设文件A和文件B都在同一个项目中? 如果没有,您需要在项目A中引用项目B
Ok再次编辑。 我在同一个项目中创建了两个文件,就像你说的那样。它起作用,在这里。
File1.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SystemSoftware
{
public struct StatusMessageBody
{
public SubsystemErrorCode LVP_ERROR_CODE;
}
}
File2.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SystemSoftware
{
//public class ErrorCode
//{
public enum SubsystemErrorCode : byte
{
NoError = 0,
EPCSS_CPU_ERROR = 1,
LVPS_ERROR
}
//}
}