如何在C#代码中编写类似java的枚举 [英] How to write enum like java in C# code
本文介绍了如何在C#代码中编写类似java的枚举的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
嗨我想将enum从java移到c#但是我不知道什么todo所以我去这里问你。
这里是java代码:
Hi i want to move enum from java to c# but i dont know what todo so im going here to ask you.
here is java code:
@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;
}
}
我尝试过:
i尝试这样的代码,但我不确定它的工作。
What I have tried:
i tried code like this but im not sure its work.
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];
}
}
是正确的吗?或者有其他解决方案?
is its correct? or have another solutions?
推荐答案
这是正确的吗?如果某些东西不起作用,请详细说明。
在此期间你可以看一下枚举类型(C#编程指南) [ ^ ]。
Is what correct? If something does not work then please explain in proper detail.
In the meantime you could take a look at Enumeration Types (C# Programming Guide)[^].
这篇关于如何在C#代码中编写类似java的枚举的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文