当声明锯齿状,多维,锯齿状,锯齿状数组并调用其GetType()
方法时,类型名称中的方括号与我声明的类型不匹配。看起来方括号是相反的。
为什么?
观察:
class Program
{
static void Main(string[] args)
{
//Declare and allocate a jagged, jagged, multidimensional, jagged array
int[][][,][] x = new int[10][][,][];
// GetType outputs "Int32[][,][][]", why not "System.Int32[][][,][]" ?
Console.WriteLine(x.GetType().Name
);
//text copied from above does not equal the type, this is this False, why?
Console.WriteLine( typeof(System.Int32[][,][][]).Equals(typeof(int[][][,][]))
);
//Reversing jagged, multidimensional square brackets of x.GetType().Name results in True
Console.WriteLine(typeof(System.Int32[][][,][]).Equals(typeof(int[][][,][]))
);
}
}
以下是示例的输出:
的Int32 [] [] [] []
假
真
为什么GetType().Name
不等于System.Int32[][][,][]
?
答案 0 :(得分:1)
没关系,我找到了答案。
ECMA-334第19.1节,阵列类型。 C#正好相反。