Enum внутри enum - PullRequest
       2

Enum внутри enum

0 голосов
/ 15 мая 2019

Я написал этот код на Java. У меня есть эти два Enums, и я хотел знать, возможно ли написать enum, эквивалентный UnitType в C #, так как он продолжает давать мне ошибки.

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;
    }
}

1 Ответ

2 голосов
/ 15 мая 2019

Я думаю, что ближайший вы можете получить 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...