int[] a = new int[5];
string[] b = new string[1];
The types of both a
and b
inherit from the abstract System.Array<
There is such class. You cannot inherit it, but when you write "int[]" the compiler creates a type that inherits System.Array. So if you declare a variable:
int[] x;
This variable will have a type that inherits System.Array, and therefore has all its methods and properties.
This is also similar to delegates. When you define a delegate:
delegate void Foo(int x);
delegate int Bar(double x);
Then the type Foo
is actually a class that inherits System.MulticastDelegate
and Bar
is a class that inherits System.Delegate
.