<legend id="ra9il"><dl id="ra9il"></dl></legend>

  • <legend id="ra9il"><dl id="ra9il"></dl></legend>
  • <legend id="ra9il"><dl id="ra9il"></dl></legend>

    <optgroup id="ra9il"></optgroup>

    <span id="ra9il"><output id="ra9il"></output></span>
    <ol id="ra9il"></ol>
    <ol id="ra9il"></ol>

  • 首页 > php教程 > C#.Net教程 > 正文

    c#中反射是什么?

    原创 2019-05-03 22:21:16 0 743
    第六期线上培训班
    反射是指提供封装程序集,模块以及类型的对象,可以通过反射动态的创建类型的实例和把类型绑定到现有的对象中,它常使用于检查和实例化程序集中的类型以及在运行时构建新类型等

    本篇文章的主要内容是向大家详细的介绍在C#中什么是反射,具有一定的参考作用,希望对大家有所帮助

    【推荐课程:C#教程

    反射是什么

    反射指的是提供封装程序集、模块和类型的对象(Type类型)。可以使用反射动态创建类型的实例,将类型绑定到现有的对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了特性,可以利用反射对它们进行访问。

    反射的使用场景

    需要访问程序元数据的特性。

    检查和实例化程序集中的类型。

    在运行时构建新类型。

    使用System.Reflection.Emit中的类。

    执行后期绑定,访问在运行时创建的类型的方法

    如何使用反射获取类型

    获得类型信息有两种方法,一种是得到实例对象,另一种是通过Type.GetType以及Assembly.GetType方法

    得到实例对象

    在这个方法中仅仅得到的是这个实例对象,得到的方式也许是一个object的引用,也许是一个接口的引用,但是并不知道它的确切类型,如果需要更进一步的了解,就可以通过调用System.Object上声明的方法GetType来获取实例对象的类型对象,比如在某个方法内,我需要判断传递进来的参数是否实现了某个接口,如果实现了,则调用该接口的一个方法:

    …
    public  void  Process(  object  processObj  ){
    Type  t  =  processsObj.GetType();
    if(  t.GetInterface(“ITest”)  !=null  )                    
    …}…

    Type.GetType以及Assembly.GetType方法

    另外一种获取类型的方法是通过Type.GetType以及Assembly.GetType方法,如:

    Type  t  =  Type.GetType(“System.String”);

    需要注意的是,要查找一个类,必须指定它所在的装配件,或者在已经获得的Assembly实例上面调用GetType。本装配件中类型可以只写类型名称,另一个例外是mscorlib.dll,这个装配件中声明的类型也可以省略装配件名称(.Net装配件编译的时候,默认都引用了mscorlib.dll,除非在编译的时候明确指定不引用它),比如:

    System.String是在mscorlib.dll中声明的,上面的Type t = Type.GetType(“System.String”)是正确的。

    System.Data.DataTable是在System.Data.dll中声明的,那么Type.GetType(“System.Data.DataTable”)就只能得到空引用。
    所以

    Type t = Type.GetType("System.Data.DataTable,System.Data,Version=1.0.3300.0,  
    Culture=neutral,  PublicKeyToken=b77a5c561934e089");

    总结:以上就是本篇文章的全部内容了,希望对大家有所帮助。

    以上就是c#中反射是什么?的详细内容,更多请关注php中文网其它相关文章!

    php中文网最新课程二维码
  • 相关标签:c# c#反射
  • 本文原创发布php中文网 ,转载请注明出处,感谢您的尊重!
  • 相关文章


  • mvvm模式和mvc的区别有哪些?
  • C#学习之面向对象如何调用类以及普通方法、静态方法的使用
  • c语言和java有什么区别?
  • c#中反射是什么?
  • 网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
    独孤九贱(5)_ThinkPHP5视频教程

    独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

    独孤九贱(4)_PHP视频教程

    独孤九贱(4)_PHP视频教程

    江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。 PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

    独孤九贱(1)_HTML5视频教程

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。 ...

    ThinkPHP5实战之[教学管理系统]

    ThinkPHP5实战之[教学管理系统]

    本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    PHP入门视频教程之一周学会PHP

    PHP入门视频教程之一周学会PHP

    所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

    作者信息

    相关视频教程

  • Css3特效效果视频教程 Css3特效效果视频教程
  • C语言中文开发手册 C语言中文开发手册
  • 相关视频章节

    第六期线上培训班 今开奖结果-今期开奖结果现场-今期开奖结果直