.Net 具有用于非零基础数组的特殊内部类型。
C# 语言没有此类型的语法,因此无法强制转换为此类型。
但是 2d 非从零开始的数组具有普通数组类型。
我想知道为什么只有一维数组有特殊类型?
var array1 = (int[]) Array.CreateInstance( typeof( int ), new[] { 6 }, new[] { -1 } ); // System.InvalidCastException : Unable to cast object of type 'System.Int32[*]' to type 'System.Int32[]'
var array2 = (int[,]) Array.CreateInstance( typeof( int ), new[] { 6, 6 }, new[] { -1, -1 } ); // it works
神不在的星期二