Array .NET, Array.CreateInstance factory method, :
public static Array CreateInstance(
Type elementType,
int[] lengths,
int[] lowerBounds
)
1- 10 , -10:
var a = Array.CreateInstance(typeof(string), new[] { 10 }, new[] { -10 });
a.SetValue("test", -5);
Console.WriteLine(a.GetValue(-5));
Console.WriteLine(a.GetLowerBound(0));
, 1- , int[], 0. , 0:
Console.WriteLine((Array.CreateInstance(typeof(int), new[] { 1 }, new[] { -1 })).GetType());
Console.WriteLine((Array.CreateInstance(typeof(int), new[] { 1 }, new[] { 0 })).GetType());
Console.WriteLine((new int[] {}).GetType());
(int[])Array.CreateInstance(typeof(int), new[] { 1 }, new[] { -1 })