【发布时间】:2020-12-09 05:02:15
【问题描述】:
有没有办法设置枚举的基础值(例如通过反射)? 如果设置值没有匹配的枚举条目会发生什么?
奖励:将枚举设置为“无效”值后,对使用枚举的人会有什么影响?
谢谢!
编辑:(用例) 一个用例是用于测试目的。 假设您有一个协议,其消息类型字段由枚举表示,在协议中作为字节传输。 现在,如果我想测试一些无效的消息类型字段值怎么办,也就是未定义,因此不是枚举的一部分。
奖励 2: 如果枚举类型是动态的而不是固定的,那么这种转换看起来会是什么样子。例如。假设您收到一个枚举类型对象并希望将其基础值设置为 1。
【问题讨论】:
-
为什么要使用反射来改变枚举的值?您能解释一下您要处理的用例吗?
-
是的。只需尝试将
int转换为枚举类型,看看会发生什么。而且,如果将其设置为类型未指定的值会发生什么?好吧,它设置好了。如果您允许这种情况发生,您的程序需要处理它 -
@ChetanRanpariya:用用例编辑。
标签: c# reflection enums