我最近的代码包含很多 boxing and unboxing,因为我的许多变量都是在运行时解析的。 但是我已经读到拳击和拆箱在计算上是非常昂贵的,所以我想问一下是否有其他方法来装箱/拆箱类型? 这甚至是使用它的好习惯吗?
答案 0 :(得分:7)
使用Generics
....
更多信息here
例如
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
答案 1 :(得分:-1)
在那个特定的问题中,我可以说使用更通用的类型,在这种情况下使用字符串并将其解析为数字(如果是数字)。更一般的approch是创建自定义结构或使用元组字段说明它是每个案例的真实答案,但它退出丑陋。