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;
系统定义的&&
操作符只支持布尔操作数。&
操作符将适用于枚举(因为它也适用于枚举所基于的所有整数类型)。当然,如果您想要一个代表两个标志值组合的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
进行分配,这样可以跟踪分配给它的所有值。