首页 > 解决方案 > 枚举中的枚举

问题描述

我用 Java 编写了这段代码。我有这两个枚举,我想知道是否可以在 C# 中编写与 UnitType 等效的枚举,因为它继续给我错误。

public enum GenericUnitType {
    BASIC, 
    NORMAL,
    HERO;
}
public enum UnitType {

    CLOSE_BASIC(GenericUnitType.BASIC),
    DISTANCE_BASIC(GenericUnitType.BASIC),
    CLOSE_NORMAL(GenericUnitType.NORMAL),
    DISTANCE_NORMAL(GenericUnitType.NORMAL),
    HERO_CLOSE_FIGHTER(GenericUnitType.HERO),
    HERO_DISTANCE_FIGHTER(GenericUnitType.HERO);


    private GenericUnitType genericType;

    UnitType(final GenericUnitType genericType) {
        this.genericType = genericType;
    }

    public GenericUnitType getGenericUnitType() {
        return this.genericType;
    }
}

标签: c#methodsenums

解决方案


我认为你能得到的最接近的是class......

public enum GenericUnitType {
    BASIC, 
    NORMAL,
    HERO;
}

public class UnitType
{
    public static GenericUnitType CLOSE_BASIC = new UnitType(GenericUnitType.BASIC);
    public static GenericUnitType DISTANCE_BASIC = new UnitType(GenericUnitType.BASIC),
    public static GenericUnitType CLOSE_NORMAL = new UnitType(GenericUnitType.NORMAL),
    public static GenericUnitType DISTANCE_NORMAL = new UnitType(GenericUnitType.NORMAL),
    public static GenericUnitType HERO_CLOSE_FIGHTER = new UnitType(GenericUnitType.HERO),
    public static GenericUnitType HERO_DISTANCE_FIGHTER = new UnitType(GenericUnitType.HERO);

    private GenericUnitType _unitType;

    public UnitType(GenericUnitType unitType)
    {
        _unitType = unitType;
    }

    public GenericUnitType UnitType => _unitType;
}

这应该给你同样的效果。C# 不具备enum在 Java 中将 ' 视为类的特性。


推荐阅读