Alternative to operand && (C#)

本文关键字:amp to Alternative operand | 更新日期: 2023-09-27 18:15:08

所以我试着用&&然而,当我把它放进去时,它说我不能对它应用操作数

具体来说就是:操作符"&&"不能应用于类型为"server . enum"的操作数。

然而,我需要能够连接这两个东西,所以我可以使代码是两个PokemonType。那么,对于不能使用&&有什么替代方法或解决方法吗?

如果你需要它,这是我的代码:

case 225: 
{
    //Flying Press -- INCOMPLETE, needs Flying-type
    setup.Move.Element = Enums.PokemonType.Fighting && setup.Move.Element = Enums.PokemonType.Flying;
    if (setup.Defender.VolatileStatus.GetStatus("Minimize") != null) 
    {
        setup.Multiplier *= 2;
        setup.Move.Accuracy = -1;
    }
}
break;

Alternative to operand && (C#)

系统定义的&&操作符只支持布尔操作数。&操作符将适用于枚举(因为它也适用于枚举所基于的所有整数类型)。当然,如果您想要一个代表两个标志值组合的enum,那么您需要将它们放在一起(使用|),而不是将它们放在一起。

要在枚举变量中添加多个值,您需要声明具有[Flags]属性的枚举。

那么你的enum就是:

[Flags]
public enum PokemonType
{
    Fighting = 1 << 0,
    Flying = 1 << 1,
    Normal = 1 << 2,
    Dragon = 1 << 3,
}

定义以2为幂的枚举常量,即1、2、4、8等。这意味着组合枚举常量中的单个标志不重叠

然后使用Enums.PokemonType.Fighting | Enums.PokemonType.Flying进行分配,这样可以跟踪分配给它的所有值。