c# - 枚举中的枚举
问题描述
我用 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;
}
}
解决方案
我认为你能得到的最接近的是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 中将 ' 视为类的特性。
推荐阅读
- javascript - 使用 Javascript 从空元素中清除 XML
- c# - 如何使用 WIA C# 创建快速双面扫描?
- java - Java-11 spring-boot 部署到谷歌云错误:应用程序不满足 [java11] 的要求
- c# - 如何在 Google Cloud 中使用 .Net Core 3.0 映像?
- python - DRF - 如何使用条件更改 serializer.PrimaryKeyRelatedField 的过滤器查找键?
- database - H2 数据库的 Slick 扩展以支持数组数据类型
- reactjs - Reactjs:将A标签更改为标签,从列表组Bootstrap 4
- gradle - 有没有办法用升级的 gradle 版本创建一个新的颤振项目?
- php - 在数组php中搜索重复值并求和
- python - 如何验证一个数组是否包含另一个数组