替代操作数 && (C#)
Alternative to operand && (C#)
所以我正在尝试使用 && 编写代码。但是,当我输入它时,它说我无法将操作数应用于它。
具体来说,它是这样写的:运算符“&&”不能应用于'Server.Enums.PokemonType'和'Server.Enums.PokemonType'
类型的操作数
但是,我需要能够 link 这两件事,这样我才能使代码成为两个 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;
系统定义的&&
运算符只支持布尔操作数。 &
运算符适用于枚举(因为它也适用于枚举所基于的所有整数类型)。当然,如果您想要一个表示两个标志值组合的枚举,那么您需要将它们组合在一起(使用 |
),而不是将它们组合在一起。
要向枚举变量添加多个值,您需要使用 [Flags]
属性声明枚举。
因此您的枚举将是:
[Flags]
public enum PokemonType
{
Fighting = 1 << 0,
Flying = 1 << 1,
Normal = 1 << 2,
Dragon = 1 << 3,
}
Define enumeration constants in powers of two,即1、2、4、8等。这意味着组合枚举常量中的各个标志不重叠
然后使用 Enums.PokemonType.Fighting | Enums.PokemonType.Flying
赋值,这样以后就可以跟踪分配给它的所有值。
所以我正在尝试使用 && 编写代码。但是,当我输入它时,它说我无法将操作数应用于它。
具体来说,它是这样写的:运算符“&&”不能应用于'Server.Enums.PokemonType'和'Server.Enums.PokemonType'
类型的操作数但是,我需要能够 link 这两件事,这样我才能使代码成为两个 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;
系统定义的&&
运算符只支持布尔操作数。 &
运算符适用于枚举(因为它也适用于枚举所基于的所有整数类型)。当然,如果您想要一个表示两个标志值组合的枚举,那么您需要将它们组合在一起(使用 |
),而不是将它们组合在一起。
要向枚举变量添加多个值,您需要使用 [Flags]
属性声明枚举。
因此您的枚举将是:
[Flags]
public enum PokemonType
{
Fighting = 1 << 0,
Flying = 1 << 1,
Normal = 1 << 2,
Dragon = 1 << 3,
}
Define enumeration constants in powers of two,即1、2、4、8等。这意味着组合枚举常量中的各个标志不重叠
然后使用 Enums.PokemonType.Fighting | Enums.PokemonType.Flying
赋值,这样以后就可以跟踪分配给它的所有值。