The top one is an
array-literal (or constant array), the second one is an
array declaration. When you assign immediately there's no difference, they're both allocated dynamically in exactly the same way.
The only difference is that a array-literal
can only be used during initialization of an array variable, meaning you can't use the literal syntax to re-assign the value of an array.
int[] a = new int[] { 1, 2, 3};
int[] b = {1, 2, 3};
a = new int[] { 4, 5, 6};
b = {4, 5, 6};
Hope this helps,
Fredrik