Как написать перечисление как java в коде C#
Привет, я хочу переместить enum с java на c#, но я не знаю, что делать, поэтому я иду сюда, чтобы спросить вас.
вот Java-код:
@XmlEnum public enum ItemAttackType { PHYSICAL(false, SkillElement.NONE), MAGICAL_EARTH(true, SkillElement.EARTH), MAGICAL_WATER(true, SkillElement.WATER), MAGICAL_WIND(true, SkillElement.WIND), MAGICAL_FIRE(true, SkillElement.FIRE); private boolean magic; private SkillElement elem; private ItemAttackType(boolean magic, SkillElement elem) { this.magic = magic; this.elem = elem; } public boolean isMagical() { return magic; } public SkillElement getMagicalElement() { return elem; } }
public enum SkillElement { NONE(0), FIRE(1), WATER(2), WIND(3), EARTH(4), LIGHT(5), DARK(6); private int element; private SkillElement(int id) { this.element = id; } public int getElementId() { return element; } }
Что я уже пробовал:
я пробовал такой код, но не уверен, что он работает.
public enum ItemAttackType { PHYSICAL, MAGICAL_EARTH, MAGICAL_WATER, MAGICAL_WIND, MAGICAL_FIRE } public enum SkillElement { NONE=0, FIRE=1, WATER=2, WIND=3, EARTH=4, LIGHT=5, DARK=6 }
public class ItemAttackTypeUtil { private static readonly IDictionary<itemattacktype, itemattacktypeutil=""> PLANETS = new Dictionary<itemattacktype, itemattacktypeutil="">(); SkillElement guardRace; bool isMagic; static ItemAttackTypeUtil() { PLANETS.Add(ItemAttackType.PHYSICAL, new ItemAttackTypeUtil(SkillElement.NONE, false)); PLANETS.Add(ItemAttackType.MAGICAL_EARTH, new ItemAttackTypeUtil(SkillElement.EARTH, true)); PLANETS.Add(ItemAttackType.MAGICAL_WATER, new ItemAttackTypeUtil(SkillElement.WATER, true)); PLANETS.Add(ItemAttackType.MAGICAL_WIND, new ItemAttackTypeUtil(SkillElement.WIND, true)); PLANETS.Add(ItemAttackType.MAGICAL_FIRE, new ItemAttackTypeUtil(SkillElement.FIRE, true)); } public ItemAttackTypeUtil(SkillElement guardRace, bool isMagic) { this.guardRace = guardRace; this.isMagic = isMagic; } public static ItemAttackTypeUtil GetUtil(ItemAttackType tribe) { return PLANETS[tribe]; } }
правильно ли это? или есть другие решения?