fis*_*ead 20 .net c# generics collections arraylist
最近我问了一个关于SO的问题,提到了c#ArrayList可能用于解决方案.有人评论说使用arraylist是不好的.我想更多关于这一点.我之前从未听过关于arraylists的声明.sombody让我快速了解使用arraylists可能出现的性能问题
C#.达网络-2-
Ode*_*ded 37
ArrayList的主要问题是使用object- 它意味着您必须对所封装的内容进行强制转换.它是泛型前几天的残余,可能只是为了向后兼容.
您没有使用通用列表的ArrayList类型安全性.性能问题是需要将对象强制转换回原始对象(或者发生隐式装箱).
每当您使用值类型时都会发生隐式装箱 - 它会在放入ArrayList时被装箱,并在被引用时被取消装箱.
问题不仅在于性能问题,还在于可读性和正确性.由于泛型进入,这个对象已经过时,只有在.NET 1.0/1.1代码中才需要.
Ree*_*sey 14
如果您正在存储值类型(int,float,double等 - 或任何结构),ArrayList将导致每个存储上的装箱,并在每个元素访问时取消装箱.这可能是对性能的重大打击.
此外,ArrayList完全缺乏类型安全性.由于所有内容都存储为"对象",因此作为开发人员,您需要承担额外的负担,以确保其安全.
此外,如果您想要存储对象的行为,您可以随时使用List<object>.相比ArrayList没有任何缺点,它有一个很大的(IMO)优势:它使你的意图(存储一个无类型的对象)从一开始就清晰.
ArrayList实际上只存在于.NET 1.1代码中,并且只应该使用它.没有理由在.NET 2+中使用它.
| 归档时间: |
|
| 查看次数: |
4339 次 |
| 最近记录: |