我有以下枚举类型:
/// <summary>
/// TTE Node types.
/// </summary>
public enum E_TTE_NODES
{
/// <summary>
/// Represents FCM 0
/// </summary>
E_FCM0 = 0,
/// <summary>
/// Represents FCM 1
/// </summary>
E_FCM1,
/// <summary>
/// Represents FCM 2
/// </summary>
E_FCM2,
/// <summary>
/// Represents DCM 0
/// </summary>
E_DCM0,
/// <summary>
/// Represents DCM 1
/// </summary>
E_DCM1,
/// <summary>
/// Represents DCM 2
/// </summary>
E_DCM2,
/// <summary>
/// Represents CCM 0
/// </summary>
E_CCM0,
/// <summary>
/// Represents CCM 1
/// </summary>
E_CCM1,
/// <summary>
/// Represents CCM 2
/// </summary>
E_CCM2,
/// <summary>
/// Represents PDU C1
/// </summary>
E_PDU_C1,
/// <summary>
/// Represents the last node.
/// Must remain last.
/// </summary>
E_LAST,
}
我想像这样初始化一个通用列表:
// Should initialize to a capacity of 10
private List<Int32> transmitIndex = new List<Int32>((Int32)E_TTE_NODES.E_LAST);
是的,我知道我可以将数字 10 作为参数传递。枚举将来可能会添加更多节点,但 E_LAST
将始终是最后一个节点。我的问题是我的编译器是否说我不能在上面的代码行中将我的枚举转换为 int。枚举值的默认值不是整数吗?
最佳答案
您可以将枚举类型强制转换为 int,问题可能出在其他地方。
这会产生你所说的编译错误:
private List<Int32> transmitIndex = new List<Int32>(E_TTE_NODES.E_LAST);
这不会:
private List<Int32> transmitIndex = new List<Int32>((Int32)E_TTE_NODES.E_LAST);
关于c# - 使用枚举值作为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3111843/