c# - 使用枚举值作为整数

标签 c# enums

我有以下枚举类型:

        /// <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/

相关文章:

.net - 我如何最好地解决这个对象类型层次结构?某种枚举层次结构?

vb.net - 如何在多个项目中使用扩展方法

c# - 在枚举值上使用 Where

c# - 配置文件 'appsettings.json'未找到且不可选

c# - VS2013 错误 "Exception has been thrown by the target of an invocation"

c# - 为什么 BufferedGraphics 绘制速度慢?

c# - C#如何选择带歧义和params

java - 通用枚举/EnumSet 问题

java - 如何使用枚举而不每次都指定枚举类?

java - 在 DELPHI 中创建一个枚举