类型为int的C#cast对象为可空枚举

类型为int的C#cast对象为可空枚举,第1张

概述我只需要能够将一个对象转换为可空的枚举.对象可以是枚举,null或int.谢谢! public enum MyEnum { A, B }void Put(object value){ System.Nullable<Myenum> val = (System.Nullable<MyEnum>)value;}Put(null); // worksPut(Myenum.B) 我只需要能够将一个对象转换为可空的枚举.对象可以是枚举,null或int.谢谢!
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&gt ;.的隐式转换. 没关系,因为你被允许从一个枚举的盒子形式的框中取消它的底层类型,反之亦然. 我相信这实际上是一个不能保证通过C#规范工作的转换,但是保证通过Cli规范工作.所以只要你在Cli上执行你的C#代码(你会是:)你会没事的.

总结

以上是内存溢出为你收集整理的类型为int的C#cast对象为可空枚举全部内容,希望文章能够帮你解决类型为int的C#cast对象为可空枚举所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1233828.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存