假设你保持最初公布年前的API(Java之前获得enum支持),它定义了枚举值一类为int: public class VitaminType {
public static final int RETINOL = 0;
public static final int THIAMIN = 1;
public static final int RIBOFLAVIN = 2;
}
多年来的
假设我有一个枚举 [Flags]
public enum E {
zero = 0,
one = 1
}
然后我可以写 E e;
object o = 1;
e = (E) o;
,它会工作。 但如果我尝试这样做,在运行时,像 (o as IConvertible).ToType(typeof(E), null)
会抛出InvalidCastExceptio