
public enum MyEnum { A,B }voID Put(object value){ System.Nullable<Myenum> val = (System.Nullable<MyEnum>)value;}Put(null); // worksPut(Myenum.B); // worksPut(1); // InvalID cast exception!!解决方法 怎么样: MyEnum? val = value == null ? (MyEnum?) null : (MyEnum) value;
从Boxed int到MyEnum的转换(如果值不为空),然后使用从MyEnum到Nullable< MyEnum> ;.的隐式转换. 没关系,因为你被允许从一个枚举的盒子形式的框中取消它的底层类型,反之亦然. 我相信这实际上是一个不能保证通过C#规范工作的转换,但是保证通过Cli规范工作.所以只要你在Cli上执行你的C#代码(你会是:)你会没事的.
总结以上是内存溢出为你收集整理的类型为int的C#cast对象为可空枚举全部内容,希望文章能够帮你解决类型为int的C#cast对象为可空枚举所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)