Com a introdução de expressões de coleção, há várias maneiras em C# de declarar uma matriz com elementos conhecidos:
Sintaxe de matriz antiga com apenas chaves
int[] array = {1, 2, 3, 4, 5};
Expressões de coleção
int[] array = [ 1, 2, 3, 4, 5 ];
Agora também é possível escrever matrizes vazias de diferentes maneiras:
Matriz vazia - Chaves
int[] array = { };
Matriz vazia - colchetes
int[] array = [];
Diferentes maneiras de declarar um array causam alguma confusão para mim. Gostaria de saber se há diferenças entre essas declarações? Há algum benefício em usar uma em vez da outra em alguns cenários? Há benefícios de desempenho que defenderiam o uso de uma declaração em vez da outra (mesmo que seja para alguns cenários muito específicos)?
ATUALIZAÇÃO Parte das abordagens de declaração de matriz foi removida para tornar a pergunta menos semelhante a outras perguntas e evitar confusão duplicada.
Para responder de forma curta e fácil. Além da legibilidade... não... o desempenho não será afetado. Você pode usar o método antigo se precisar de um array vazio, pois isso o torna, na minha opinião, muito mais limpo para ler, mas isso vai contra o princípio de um array, pois eles não são dinâmicos.
Tl;Dr; Não
Editar: Conforme mencionado por @Oliver Jacot-Descombes, a
[]
maneira de declarar uma matriz vazia aceitaArray.Empty<T>();
o estilo de colchetes e não criará uma nova matriz vazia toda vez