日期:2014-05-20  浏览次数:20925 次

要使用字节数组,不要使用字节集合?
在《.net 设计规范——约定、惯用法和模式》第二版第218页(8.3.3 数组与集合之间的选择)给出了如题的建议,请问为什么要使用字节数组,不要使用字节集合?

C# code

//bad design
public Collection<byte> ReadBytes(){......}

//good design
public byte[] ReadBytes() {......}



------解决方案--------------------
因为byte类型是给底层处理的用的,一般用来做存储或传输,以及与非托管程序交互...也就是说只用来序列化或编码转换,因此长度是固定的,没必要用集合...

另外集合类型不是标准数据结构,与非托管程序交互或网络传输也不可能...
------解决方案--------------------
哦,学习了饿!
------解决方案--------------------
byte[] 开销最小,不过有时候不是很灵活,一般用List<T>或者ArrayList除非有大的性能要求才考虑byte[]优化
------解决方案--------------------
学些了。