Распределение памяти массива в С#

Я блуждал, какой способ сделать ниже код лучше:

a)

 byte[] tmp = BitConverter.GetBytes(Number)

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

Нужно ли использовать динамическое распределение памяти?

3 ответа

Определенно а).

б) создает два массива, первый из которых совершенно не нужен и отбрасывается сразу после инициализации.


Фактически второй является избыточным, потому что GetBytes возвращает новый массив, поэтому вы выбрасываете первый массив, который вы создали...


Первое лучше по двум причинам:

  1. Это более читаемо
  2. В примере b первое распределение выбрасывается, поскольку tmp повторно назначается возвращаемому значению GetBytes

licensed under cc by-sa 3.0 with attribution.