int[] a = new int[5];
string[] b = new string[1];
The types of both a and b inherit from the abstract System.Array<
Look at the Array class.
When declaring an array using the [] syntax, the compiler, behind the scenes will use this class for you.
For C#, [] becomes a type that inherits from System.Array.
From the C# 4.0 spec:
§12.1.1 The System.Array type
The type System.Array is the abstract base type of all array types. An implicit reference conversion (§6.1.6) exists from any array type to System.Array, and an explicit reference conversion (§6.2.4) exists from System.Array to any array type. Note that System.Array is not itself an array-type. Rather, it is a class-type from which all array-types are derived.