假设我有一个枚举
[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转换为枚举呢?
发布于 2008-12-05 23:32:42
在中保存转换结果的变量是什么样子的?也就是说,你用哪种类型来声明它?
如果你想要有一个对象变量,就让它成为对象变量。使用Activator.CreateInstance而不是null来创建枚举的默认实例:
object o = Activator.CreateInstance(typeof(E));发布于 2008-12-07 05:22:48
您还可以使用
Enum.Parse(typeof(E), (int)o)https://stackoverflow.com/questions/345506
复制相似问题