c#中GetType()与Typeof()的区别

 更新时间:2020年6月25日 11:42  点击:1524

案例1:

复制代码 代码如下:

int i = 5;
Console.WriteLine(i.GetType());//System.Int32
var x = 127.25m;
Console.WriteLine(x.GetType());//System.Decimal

案例2:
复制代码 代码如下:

namespace _2011._12._15
{
    class Program
    {
        static void Main(string[] args)
        {
            Test testone = new Test();
            string s = testone.GetType().ToString();
            Console.WriteLine(s);//_2011._12._15.Test  命名空间的Test类
        }
    }
    class Test
    {    
    }
}

Typeof()返回的是类名的对象,也可以返回类名,也可以返回特定类内部的方法和字段
复制代码 代码如下:

namespace _2011._12._15
{
    class Program
    {
        static void Main(string[] args)
        {
            Test testone = new Test();
            string s = testone.GetType().ToString();
            Console.WriteLine("GetType():");
            Console.WriteLine(s);//_2011._12._15.Test  命名空间的Test类

            Type type = typeof(Test);
            Console.WriteLine("Typeof():");
            Console.WriteLine(type);//_2011._12._15.Test  命名空间的Test类
            Console.WriteLine();

           MethodInfo[] methodinfo = type.GetMethods();

           Console.WriteLine(methodinfo.GetType());//System.Reflection.MethodInfo[]
            foreach (var i in methodinfo)
            {
                Console.WriteLine(i);//输出Test类的所有方法及继承Object的实例方法
            }
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            MemberInfo[] memberinfo = type.GetMembers();
            Console.WriteLine(memberinfo.GetType());
            foreach(var i in memberinfo)
            {
                Console.WriteLine(i);//输出Test类字段和System.type类型
            }
        }


    }
    class Test
    {
        private int age;
        public string name;
        public void speaking()
        {
            Console.WriteLine("Welcome to cnblog!");
        }
        public void writing()
        {
            Console.WriteLine("Please writing something!");
        }
    }
}


运行结果:
复制代码 代码如下:

GetType():
_2011._12._15.Test
Typeof():
_2011._12._15.Test

System.Reflection.MethodInfo[]
Void speaking()
Void writing()
System.Type GetType()
System.String ToString()
Boolean Equals(System.Object)
Int32 GetHashCode()

System.Reflection.MemberInfo[]
Void speaking()
Void writing()
System.Type GetType()
System.String ToString()
Boolean Equals(System.Object)
Int32 GetHashCode()
Void .ctor()
System.String name

[!--infotagslink--]

相关文章

  • JavaScript中isPrototypeOf函数

    这篇文章主要介绍了JavaScript中isPrototypeOf函数,isPrototypeOf() 是 Object函数(类)的下的一个方法,用于判断当前对象是否为另外一个对象的原型,如果是就返回 true,否则就返回 false,下面来看看详细内容,需要的朋友可以参考一下...2021-11-05
  • C#基础知识之GetType与typeof的区别小结

    在比较对象时,需要了解他们的类型,才能决定他们的值是否能比较。所有的类都从System.Object中继承了GetType()方法,常常与typeo()运算符一起使用。这篇文章主要给大家介绍了关于C#基础知识之GetType与typeof区别的相关资料,需要的朋友可以参考下...2021-06-01
  • TypeOf这些知识点你了解吗

    昨天给同事一起玩耍,同事给我出了一道代码题目,是关于typeof的,感觉挺好玩的,在此分享给大家,顺便巩固下自己对typeof知识点的总结...2016-02-23
  • 谈谈我对JavaScript中typeof和instanceof的深入理解

    这次主要说说javascript的类型判断函数typeof和判断构造函数原型instanceof的用法和注意的地方,对本文感兴趣的朋友一起看看吧...2015-12-27
  • Javascript typeof与instanceof的区别

    JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的。但它们之间还是有区别的,需要的朋友可以参考下...2016-10-20
  • 浅析C语言中typeof关键字用法

    typeof关键字是C语言中的一个新扩展。在linux内核源代码中广泛使用。接下来通过本文给大家分享C语言中typeof关键字用法,需要的朋友参考下...2020-04-25
  • c#中GetType()与Typeof()的区别

    c#中GetType()与Typeof()的区别,需要的朋友可以参考一下...2020-06-25