You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中enum强制转换为int是否属于拆箱操作?

问题解答

你给出的代码如下:

enum Season { spring, summer, fall, winter }
int a = (int)Season.spring;

结论

上述强制转换属于普通值类型转换,不属于拆箱操作,你原本的判断是正确的。

具体说明

  • 拆箱的定义是将已经装箱存储在堆上的object或接口类型实例,还原为对应值类型的操作,必须对应前置的装箱操作,且会产生运行时类型校验开销。
  • C#中的枚举属于值类型,默认底层存储类型就是int,枚举成员本质是绑定了对应整数值的强类型常量。(int)Season.spring的转换逻辑在编译阶段就已确定,运行时仅直接读取枚举持有的底层整数值完成赋值,全程没有涉及引用类型的操作,也不存在运行时类型校验,完全符合普通值类型转换的特征。

内容的提问来源于stack exchange,提问作者user16889964

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 09:06:03