C#中的数组内存分配

时间:2014-07-22 08:39:08

标签: c#

我徘徊在代码下面做哪种方式更好:

a)

    byte[] tmp = BitConverter.GetBytes(Number)

b) 
    byte[] tmp = new byte[sizeof(Number)]
    tmp = BitConverter.GetBytes(Number)

是否有必要使用动态内存分配?

3 个答案:

答案 0 :(得分:4)

绝对是a)。

b)创建两个数组,其中第一个是完全不必要的,并在初始化后立即被抛弃。

答案 1 :(得分:2)

实际上第二个是冗余,因为GetBytes返回一个新数组,所以你丢弃了你创建的第一个数组......

答案 2 :(得分:1)

第一个更好有两个原因:

  1. 更具可读性
  2. 在示例b中,当tmp重新分配给GetBytes
  3. 的返回值时,第一次分配将被丢弃