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值的常量列表吗?
您需要转换数字:
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变量的静态类。
感谢您的帮助