当前位置: 首页 > news >正文

网站做支付系统短网址压缩

网站做支付系统,短网址压缩,网站开发报价单.doc,平板室内装修设计软件反射 C#中的反射是一种使程序在运行时能够动态地获取类型信息并调用其成员的技术。通过反射#xff0c;程序可以在运行时进行类型的动态加载、创建对象、调用方法和属性#xff0c;以及访问和修改字段等。反射可以使程序更加灵活#xff0c;但也增加了一定的性能开销。 在C#…反射 C#中的反射是一种使程序在运行时能够动态地获取类型信息并调用其成员的技术。通过反射程序可以在运行时进行类型的动态加载、创建对象、调用方法和属性以及访问和修改字段等。反射可以使程序更加灵活但也增加了一定的性能开销。 在C#中反射主要是通过System.Reflection命名空间中的类来实现的。以下是一些常用的反射类和方法 Type类Type类表示一个类型可以通过其静态方法获取某个类型的Type对象例如typeof关键字和Type.GetType()方法。Type类提供了许多有用的方法如GetMethods()获取类型的所有方法GetProperties()获取类型的所有属性等。 MethodInfo类MethodInfo类表示一个方法可以通过Type类的GetMethods()方法获取一个类型的所有方法然后使用MethodInfo对象来调用具体的方法。 PropertyInfo类PropertyInfo类表示一个属性可以通过Type类的GetProperties()方法获取一个类型的所有属性然后使用PropertyInfo对象来访问和修改具体的属性。 FieldInfo类FieldInfo类表示一个字段可以通过Type类的GetFields()方法获取一个类型的所有字段然后使用FieldInfo对象来访问和修改具体的字段。 反射的优点 虽然反射在性能和资源消耗方面存在一些开销但它在应用中仍然具有一些重要的优势和用途如下所示 动态加载和调用反射允许在运行时动态加载和调用类型、方法和成员。这对于需要动态扩展和插件化的应用程序非常有用例如插件系统、脚本引擎等。通过反射可以在运行时加载和使用不同的程序集和组件从而使应用程序更具灵活性和可扩展性。 元数据操作反射提供了一种方式来读取和操作类型的元数据包括属性、字段、方法、特性等的信息。这使得我们可以在运行时动态获取和操作类型的结构和行为。这对于实现某些高级功能和框架例如ORM对象关系映射、序列化库、依赖注入容器等非常有用。 可扩展的代码生成和编译反射使得我们可以动态生成和编译代码。这对于一些需要在运行时动态生成和执行代码的场景非常有用例如动态代理、AOP面向切面编程、代码生成器等。通过反射我们可以在运行时创建并执行代码从而实现更高级的代码生成和动态编程。 框架和工具的开发反射是许多框架和工具的基础例如单元测试框架、序列化库、ORM框架等。这些框架和工具需要在运行时通过反射来获取和使用类型的信息并在不同的场景中动态调用和操作代码。通过反射这些框架和工具可以更加灵活和通用提供更高级的功能和扩展性。 需要强调的是尽管反射在某些情况下会带来性能开销但在大多数情况下这些开销并不会对应用程序的整体性能产生显著的影响。在使用反射时我们应该权衡其灵活性和便利性与性能之间的平衡并根据实际需求来选择合适的方法和工具。 反射的案例 private void bt_Test_Click(object sender, System.Windows.RoutedEventArgs e) { //反射// 获取MyClass类型的Type对象Type type typeof(MyClass); ​// 创建MyClass对象object myClassObj Activator.CreateInstance(type); ​// 获取MyMethod方法的MethodInfo对象MethodInfo methodInfo type.GetMethod(MyMethod); ​// 调用MyMethod方法methodInfo.Invoke(myClassObj, null); ​//Log.Write(str.ToString(),HaagonLibrary.Log.Log.EnumLogType.Warning); ​Type type typeof(MyClass); ​// 动态调用反射方法object myClassObj Activator.CreateInstance(type);MethodInfo methodInfo type.GetMethod(MyMethod); ​var stopwatch Stopwatch.StartNew();for (int i 0; i 1000000; i){methodInfo.Invoke(myClassObj, null);}stopwatch.Stop();Log.Write(动态调用耗时 stopwatch.ElapsedMilliseconds 毫秒, HaagonLibrary.Log.Log.EnumLogType.Warning);// 静态调用反射方法var myClass new MyClass(); ​stopwatch.Restart();for (int i 0; i 1000000; i){myClass.MyMethod();}stopwatch.Stop();Log.Write(静态调用耗时 stopwatch.ElapsedMilliseconds 毫秒, HaagonLibrary.Log.Log.EnumLogType.Warning);} } public class MyClass {public void MyMethod(){Console.WriteLine(Hello, Reflection!);} } 文章转载自chen西瓜 原文链接https://www.cnblogs.com/chen233/p/17897313.html 体验地址引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构
http://www.pierceye.com/news/709816/

相关文章:

  • 网站建设空间选择的重要性wordpress菲插件关键词
  • 基于wap的企业网站设计与实现洛阳霞光seo网络公司
  • 在家做的手工活哪里有网站网站开发与运营方向和企业管理方向
  • 厦门网站建设厦门南京宣传片公司有哪些
  • 专门做问卷的网站南宁做网站公司
  • 鹰潭做网站公司网站模板及素材
  • dw网站引导页怎么做wordpress 福利
  • PS网站设计网站每年都要备案吗
  • 建设通网站账号erp实施顾问
  • 变装小说 wordpress网站建设好怎么优化
  • 苏州网站建设制作开发公司江浦做网站
  • 网站开发哪一门语言更快网站设计方案模板
  • 阿里云做网站需要些什么条件个人博客网站设计模板
  • 更改网站模板内容我赢职场wordpress
  • h5模板下载有哪些网站南京高端网站制作公司
  • 户外旅游网站模板佛山网络优化推广公司
  • 海南住房和城乡建设网站技术支持 重庆网站
  • 网站图片展示代码怎样给响应式网站提速
  • 学校 网站建设 招标广而告之微信推广平台
  • 企业如何通过地方网站宣传网站中国建设银行招聘官网
  • 上海品牌网站建设公网站的开发与建设项目
  • 做网站的艰辛电子商务网站建设与维护概述
  • 织梦网站做关键词网站开发到上线的过程
  • 威海千淼网站建设北京知名广告公司有哪些
  • wordpress多站点可视化wordpress主题flarum
  • 网站免费虚拟主机申请成华区微信网站建设公
  • 机械制造设备类企业网站织梦模板网站模板 博客
  • js跳转网站怎么做网络营销方式单一的原因
  • 做网站的职责做章的网站
  • 万网建设网站wordpress的ftp設置