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

 更新时间:2013年04月27日 15:00:17   作者:  
c#中GetType()与Typeof()的区别,需要的朋友可以参考一下

案例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

相关文章

  • 清除aspx页面缓存的程序实现方法

    清除aspx页面缓存的程序实现方法

    这篇文章主要介绍了清除aspx页面缓存的程序实现方法,非常实用,需要的朋友可以参考下
    2014-08-08
  • C#基础之泛型委托实例教程

    C#基础之泛型委托实例教程

    这篇文章主要介绍了C#中的泛型委托,并以EventHandler为例对泛型委托的常见用法进行了实例分析,需要的朋友可以参考下
    2014-09-09
  • c#执行外部命令示例分享

    c#执行外部命令示例分享

    c#执行外部命令示例分享,大家参考使用吧
    2013-12-12
  • C# 使用SHA1算法对密码进行加密

    C# 使用SHA1算法对密码进行加密

    这篇文章主要介绍了C# 使用SHA1算法对密码进行加密,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C#实现读取写入Json文件

    C#实现读取写入Json文件

    这篇文章主要介绍了C#实现读取写入Json文件方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • 访问修饰符(C# 编程指南)

    访问修饰符(C# 编程指南)

    所有类型和类型成员都具有可访问性级别,用来控制是否可以在您程序集的其他代码中或其他程序集中使用它们。您在声明类型或成员时使用以下访问修饰符之一来指定其可访问性
    2011-02-02
  • Unity调用手机摄像机识别二维码

    Unity调用手机摄像机识别二维码

    这篇文章主要为大家详细介绍了Unity调用手机摄像机识别二维码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • C#中Span相关的性能优化建议

    C#中Span相关的性能优化建议

    Span 是C#7.2引入的一种新类型,在.NET Core 2.1运行时中受支持,Span 提供对内存连续区域的类型安全访问,这篇文章主要给大家介绍了关于C#中Span相关的一些性能优化建议,需要的朋友可以参考下
    2021-08-08
  • 如何在C#9 中使用顶级程序 (top-level)

    如何在C#9 中使用顶级程序 (top-level)

    这篇文章主要介绍了如何在C#9 中使用顶级程序 (top-level),帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • c#基础学习之封装

    c#基础学习之封装

    说到封装,其实是比较基础类的问题,它为程序设计提供了系统与系统,模块与模块,类与类之间交互的实现手段
    2013-09-09

最新评论