常见的使用反射的场景:
程序在运行时动态地访问类的成员,如获得类的变量、方法。

例如:用反射给本类的变量赋值。

public class Student{
public string studentName = "小王";
public void Test()
{
Type type = this.GetType(); // 获得本类的类型
PropertyInfo propertyInfo = type.GetProperty("studentName"); // 获得本类的成员变量
propertyInfo.SetValue(this, "老王"); // 修改本类的成员变量
}
}

上面的代码,运行Test()方法后,能够重新给本类的变量赋值。通常经过别的操作得到新的值,然后将新的值做为参数传入该方法。

使用反射和泛型,可以使得接口类的设计通用型更强,但会降低代码可读性。报错时得Debug来一步步调试来看运行时反射得到是数据类型。

其他反射使用场景:获得类的方法并调用等。

学习:

http://www.runoob.com/csharp/csharp-reflection.html

最新文章

  1. poj 2594Treasure Exploration(有向图路径可相交的最小路径覆盖)
  2. float 和 inline-block的心得
  3. Oracle Profile 使用详解--zhuanzai
  4. JavaScript toFixed() 方法
  5. Spark Submit 脚本
  6. spring,property not found on type
  7. Python进阶之模块
  8. 介绍一下Spring Cloud简介
  9. .Net 登陆的时候添加验证码
  10. MySQL学习笔记(三)数据优化
  11. 最短路,dijstra算法
  12. jquery无刷新文件上传 解决IE安全性问题
  13. select 中添加option的注意
  14. 使用WinSCP在Windows和Linux系统之间传输文件
  15. CCF CSP 201503-2 数字排序
  16. [ 原创 ] Java基础7--Java反射机制主要提供了以下哪些功能?
  17. Java解惑之TreeSet是如何去重的
  18. iOS笔记之内存泄露
  19. Nginx源码完全注释(6)core/murmurhash
  20. DOCTYPE 与浏览器模式分析

热门文章

  1. Windows 消息机制浅析
  2. 禁用root登录以及使用sudo分配权限
  3. Python实现天数倒计时计算
  4. 堆 C语言实现
  5. Windows CMD常用命令大全 运行命令
  6. Google C++单元测试框架之宏
  7. Linux下发布javaWeb项目,配置环境变量,tomcat,和安装mysql数据库
  8. Ubuntu Pycharm不能同时选中多行解决方法
  9. 安装完SqlServer2008,wamp服务器无法启动的问题
  10. 修改ultisnips的默认键