typeof与GetType区别

typeof与GetType区别

 代码如下:

复制代码
复制代码
           static void Main(string[] args)
        {
            object m1 = 1;
            object m2 = 1;
// ValueType是引用类型,因为它是类,所以返回为false Console.WriteLine(typeof(ValueType).IsValueType); Console.WriteLine(m1.GetType().IsValueType); Console.Read(); }
复制代码
复制代码

要想弄明白上面的运行结果,首先我们应该理解typeof与GetType的区别(之前我认为两个的都是一样的,这是一个误区),具体的区别为:

  • typeof  是运算符,而 GetType() 是方法
  • typeof 获得类型的System.Type对象,GetType()获得当前实例的Type,
  • GetType()是基类System.Object的方法,只有建立了一个实例之后才能够被调用
  • typeof的参数只能是int, string, class,自定义类型,不能为具体实例,否则编译器会报错

知道它们的区别之后,结果也就很容易得到了,上面程序的运行结果为:

posted @ 2017-06-12 10:29  HK->胡康  阅读(481)  评论(0编辑  收藏  举报