c #jagged多维锯齿状数组类型名称显示不正确

时间:2017-02-27 15:59:25

标签: c# multidimensional-array jagged-arrays

当声明锯齿状,多维,锯齿状,锯齿状数组并调用其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[][][,][]

1 个答案:

答案 0 :(得分:1)

没关系,我找到了答案。

ECMA-334第19.1节,阵列类型。 C#正好相反。