【发布时间】:2015-08-11 08:25:56
【问题描述】:
我玩一个游戏,我有一个 c# 编写的源代码,我正在尝试发出一个命令。假设我有这些常量:
public class Flags {
public const ulong
Normal = 0x0,
FlashingName = 0x1,
Dizzy = 1UL << 58,
DivineShield = 1UL << 57,
Poisoned = 0x2
}
我想试试这样的命令:
case "addflag":{
client.Entity.AddTopStatus(Update.Flags.(Data[1]), DateTime.Now.AddDays(1), false);
break;
}
在游戏中我会输入@addflag Dizzy(dizzy 代替常量中的 (data[1])),有点像命令是:
client.Entity.AddTopStatus(Update.Flags.Dizzy, DateTime.Now.AddDays(1), false);
但由于 (data[1]) 在那里,我可以通过命令来完成,而不是直接调用它。我可以选择任何常量,而不是单独调用每个常量。
此代码中出现错误,但这是意料之中的。有什么办法可以做到这一点吗? (我希望你们能理解我,我对 c# 不是很好,如果这令人困惑,请见谅)
【问题讨论】:
-
Flags 看起来更像是
Enum(尽管据我所知,这有很多不同类型的项目),在这种情况下,它变成了如何获取枚举密钥的问题名字..