一个数组 C# 中的许多枚举
本文关键字:许多 枚举 数组 一个 | 更新日期: 2023-09-27 18:33:27
我一直在寻找如何制作一个具有许多不同枚举的数组。
我正在尝试做的是例如使用枚举
public enum playerTeam
{
Red,
Blue
};
另一个与
public enum currentWeapon
{
Knife,
Gun,
Rifle,
Shotgun,
SniperRifle,
RocketLauncher,
Grenade,
Molotov,
FlameThrower,
ProximityMine,
RemoteMine
};
然后将它们分配给一个名为
Players[]
然后能够通过数组循环并设置每个枚举的值。我以前使用过没有数组的枚举。设置/获取播放器的数据。但现在我即将将我的项目扩展到多人游戏。而且我不知道如何将枚举添加到一个数组中。因为这会使代码更容易处理。
这真的很难解释,希望你们理解。
我建议你创建一个类Player
,其中的成员Weapon
和Team
。然后使用播放器实例执行操作。
class Player
{
Weapon CurrentWeapon {get; set;}
Team Team {get; set;}
}
考虑到 C# 允许你做的事情,这是一种奇怪的看待事物的方式。充其量,为了达到你想要的,你可以使用一些将关键映射到价值观(玩家到武器/团队)的东西,比如System.Collections.Generic.Dictionary
。
但真的没有必要这样做。Player 类应在两个字段中包含该信息:
class Player
{
...
private Team currentTeam;
private Weapon currentWeapon;
...
}
从你如何命名枚举和你的想法来看,我认为你还应该从头到尾关注 C# 和 OOP 的学习资源。
这有点荒谬,因为团队肯定不是武器(wtf 是当前武器,而不是武器),但如果你问如何使用枚举和位标志,你可以写
[Flags]
public enum Weapon
{
...
WeaponMask = 0xFF
IsBlueTeam = 0x0100
}
这允许你做
switch(player[i] & WeaponMask) { case SomeWeapon: ... }
isBlueTeam = (player[i] & IsBlueTeam) != 0 //assuming its either blue or read