System.Object是所有类的几类么?
或许您看到这个问题的第一个反映是:这丫吃多了
如果这个问题不是我问的,估计我也是这个反映namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(typeof(Test).BaseType);
            Console.WriteLine(typeof(Test).BaseType.BaseType);
        }
    }
    class Test
    {
        public Test(String name)
        { }
    }
}输出结果System.Object请按任意键继续. . .对于第一个输出,我们没有任何异议,这本就是我们的认识。可是第二个输出怎么理解?这也是我问这个问题id初衷。我没有VS2008所以也没办法去看源代码,所以在这里冒昧的问下。也给没怀疑过这个问题的人们加杯饮料。^_^

解决方案 »

  1.   


      System.Object是所有类的几类
      第二个输出我觉得是这样,typeof(Test).BaseType已经是System.Object,
      typeof(Test).BaseType.BaseType这个的意思就是问Object的几类,Object已经是所有类的几类了,所以就出现请按任意键继续. . .这个结果了
      

  2.   

    Console.WriteLine(typeof(Test).BaseType.BaseType);
    等价与
    Console.WriteLine(null);
    的输出结果
      

  3.   


    System.Object
                      //注意这里,这可是个空行,是第二个语句的输出
    请按任意键继续. . .
      

  4.   

    Console.WriteLine(null); 
    。。这个是要报错的
      

  5.   

    Console.WriteLine((object)null);
    强制指定一下重载
      

  6.   

    您装了VS2008没有啊,看看BaseType属性的源码吧。要不总觉得缺点啥。
    俺网破,下不来,盗版盘这边抓的比较严,没地方买http://p.blog.csdn.net/images/p_blog_csdn_net/renrousousuo/40.gif
      

  7.   

    几类...茶几类还是桌几类?因为object的类是null...如此基础的问题...
      

  8.   

    reflect type 类型 看一下就知道
      

  9.   

    typeof(Test).BaseType.BaseType,object没有基类当然返回NULL了,然后Console.WriteLine会把参数强制转换成string 类型,所以就是把null强制转换成了string,结果就成了空行,其效果等价于Console.WriteLine((string)null);,你可以试试。
      

  10.   

    Object是所有类的几类——这是Java的爸爸说的,绝对不会错!