C# 常量值列表

C# constant list of values

我想用C#程序控制另一个设备,这个设备有类似寄存器的读写功能。所以我搜索了一些东西来输入所有寄存器编号以获得更好的人类可读代码并拥有中央配置位置。所有寄存器都使用一个 uint 值。

我在搜索这样的东西:

public enum EISCJoin : uint
{
    Read_Connect = 1,
    Read_Temp = 2,
    Read_Switch = 3,
    Write_Connect = 1,
    Write_Temp = 2,
    Write_Switch = 3,
}

switch (args.Sig.Number) //uint value
{   
    case (uint)EISC.Read_Connect:
        {
            args.SendValue[(uint)Write_Connect] = 1;
            ...
            break;
        }
    case (uint)EISC.Read_Temp:
        {
            args.SendValue[(uint)Write_Temp] = 1;
            ...
            break;
        }
    case (uint)EISC.Read_Switch:
        {
            args.SendValue[(uint)Write_Switch] = 1;
            ...
            break;
        }
}

我的问题是我不想在我的源代码中多次转换 ENUM 值,而且我知道使用枚举不可能进行隐式对话。

有人有创建 uint 值常量列表的好主意吗?

您需要改投号码:

switch (args.Sig.Number)

switch ((EISCJoin)args.Sig.Number)

另一种方法是使用静态 class 和常量单位:

static public class EISCJoin
{
    public const uint Read_Connect = 1;
    public const uint Read_Temp = 2;
    // and so on
}

我必须使用制造商的框架并且无法访问所有 classes,将所有 classes 修改为枚举不是一个选项。

我使用一个值最多的时间只有1-2次,所以我最多投这个值1次使用。

看来我必须使用带有 const uint 变量的静态 class。

感谢您的帮助