日期:2014-05-18  浏览次数:20725 次

数组类型
题目:数组类型是从抽象基类System.Object派生的引用类型 
这个对不对。
我觉的不对.
不同类型的数组,数据类型是不是一样?
比如一个int数组,一个对象数组,他们俩的数据类型一样吗?


------解决方案--------------------
题目的答案是不对...但是你的答案的依据更不对...

1.System.Object不是抽象类...
2.所有数组类型都是从System.Array派生的,但是System.Array派生自System.Object...System.Object是.NET Framework中所有类的最终基类,是类型层次结构的根...

不同类型的数组数据类型当然不一样,但是不一样的原因是因为它们各自有不同的派生类实现而不是因为它们有不同的基类...
------解决方案--------------------
同意1楼,System.Object是.NET所有类的基类,但它不是抽象类
数组的基类是System.Array,它是抽象的,所有具体类型的数组(如int数组、对象数组)都是由这个类派生出的一个类
例如一个int数组,一个对象数组,其实是从一个抽象基类派生的两个类
------解决方案--------------------
数组为引用类型,所有数组类型都是从System.Array派生的
------解决方案--------------------
比如一个int数组,一个对象数组,他们俩的数据类型一样吗? 

数据类型不兼容。
C# code

private static void ff(object[] o)
        {
            for(int i=0;i<o.Length;i++)
              Console.WriteLine(o[i]);
        }
        public static void test3()
        {
            ff(new string[] { "a","b"});
            //Error Argument '1': cannot convert from 'int[]' to 'object[]'    
            //ff(new int[] { 1,2});
        }