c# - c# 'bracketed' 类型转换的运行时等效项是什么

标签 c# casting enums runtime

假设我有一个枚举

[Flags]
public enum E { 
    zero = 0,
    one = 1
}

然后我就可以写了

E e;
object o = 1;
e = (E) o;

它会起作用。

但是如果我尝试在运行时这样做,比如

(o as IConvertible).ToType(typeof(E), null)

它将抛出 InvalidCastException。

那么,有什么我可以在运行时调用的东西,它会从 int32 转换为枚举,就像我上面写的强制转换一样?

最佳答案


object o = 1;
object z = Enum.ToObject(typeof(E), o); 

关于c# - c# 'bracketed' 类型转换的运行时等效项是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/345506/

相关文章:

c# - 如何在 WPF 中捕获从子组件到父组件的激活命令?

c# - 通过字符串和 varchar(max) 之间的比较来更新查询

sql-server - SQL server 2005中 "select 123.866"的数据类型是什么?

c# - 如何区分 Flags 枚举和普通枚举?

c# - 可能有枚举字符串?

c# - 我将如何每 5 到 7 秒实例化一个对象?

c# - 当 MainWindow 完全用 C# 构建时,我在哪里可以添加方法调用

php - 如何从 Countable 对象中获取第一个元素?

c# - Actor 后的对象类型?

c# - 如何在 XAML 中将全局枚举分配为标记值?