c# - 这段代码可以吗?

时间:2015-08-11 08:25:56

标签: c# command constants

我玩一个游戏,我有一个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(代替(data [1])的头晕),有点像命令是:

client.Entity.AddTopStatus(Update.Flags.Dizzy, DateTime.Now.AddDays(1), false);

但由于(data [1])存在,我可以通过命令来完成,而不是直接调用它。我可以选择任何常数,而不是单独调出每一个。

此代码我收到错误,但这是预料之中的。有什么事我能做到吗? (我希望你们了解我,我对c#不是很好,所以如果这令人困惑,那就很抱歉)

1 个答案:

答案 0 :(得分:0)

Flags设为enum,然后使用Enum.Parsedata[1]转换为相应的标记。

public enum Flags : ulong 
{

        Normal = 0x0,
        FlashingName = 0x1,
        Dizzy = 1UL << 58,
        DivineShield = 1UL << 57,
        Poisoned = 0x2
}