Explanation for array initialization peculiarities - C#