C#常量值列表

本文关键字:列表 常量 | 更新日期: 2023-09-27 18:22:14

我想用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值进行数千次强制转换,而且我知道使用ENUM不可能进行隐式对话。

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

C#常量值列表

您需要转换数字:

switch (args.Sig.Number)

switch ((EISCJoin)args.Sig.Number)

另一种方法是使用静态类和常量uints:

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

我必须使用制造商的框架,并且不能访问所有类,不能将所有类修改为枚举。

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

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

感谢您的帮助