繁体   English   中英

C# 装箱/拆箱的任何替代品?

[英]C# Any substitutes for Boxing/Unboxing?

我最近的代码包括很多装箱和拆箱,因为我的许多变量都是在运行时解析的。 但是我读过装箱和拆箱在计算上非常昂贵,所以我想问一下是否有其他方法来装箱/拆箱类型? 这甚至是使用它的好习惯吗?

使用Generics ....

更多信息在这里


例如

List lst=new List();//non generic List accepts any kind of object
lst.Add(44);//this causes unnecessary boxing from int to object
lst.Add(100);//this causes unnecessary boxing from int to object

如果您确定该列表将始终包含一个整数,您可以使用泛型..

List<int> lst=new List<int>();
lst.Add(44);//no boxing or unboxing
lst.Add(100);//no boxing or unboxing

在那个特定问题中,我可以说使用更通用的类型,在这种情况下是字符串,如果它是数字,则将其解析为数字。 更一般的方法是创建自定义结构或使用带有字段的元组,说明每个案例的真正答案是什么,但它很难看。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM