In .Net different code syntax produces identical code.
Consider the two bits of code below:
private string myString;
public string MyString
{
get
{
return myString;
}
set
{
myString = value;
}
}
and
public string MyString {get; set;}
They both do exactly the same thing
The second block is basically just a shorthand way to create the first.
For your second Array example the C# compiler 'knows' that you want to create a new
int[]
and does it for you behind the scenes.
It is just a more recent way to do it to make the coders job easier.