1. 反射是在程序运行时动态地获取程序或程序集中的元数据,例如类、字段、属性、方法等。
  2. 通过枚举类型BindingFlags控制获取信息的范围。
using System;
using System.Reflection;namespace _19
{class Program{static void Main(string[] args){MyClass myClass = new MyClass();Console.WriteLine("*****公共静态字段*****");FieldInfo[] fieldInfos1 = myClass.GetType().GetFields(BindingFlags.Public | BindingFlags.Static);foreach (var item in fieldInfos1){item.SetValue(myClass, 10);Console.WriteLine($"字段名:{item.Name}\t类型:{item.FieldType}\t值:{item.GetValue(myClass)}");}Console.WriteLine();Console.WriteLine("*****私有实例字段*****");FieldInfo[] fieldInfos2 = myClass.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);foreach (var item in fieldInfos2){item.SetValue(myClass, "ACai");Console.WriteLine($"字段名:{item.Name}\t类型:{item.FieldType}\t值:{item.GetValue(myClass)}");}Console.WriteLine();Console.WriteLine("*****公共静态方法*****");MethodInfo[] methodInfos1 = myClass.GetType().GetMethods(BindingFlags.Public | BindingFlags.Static);foreach (var item in methodInfos1){item.Invoke(myClass, new object[] { 20 });}Console.WriteLine();Console.WriteLine("*****私有实例方法*****");MethodInfo[] methodInfos2 = myClass.GetType().GetMethods(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.DeclaredOnly);foreach (var item in methodInfos2){item.Invoke(myClass, new object[] { "ABei" });}Console.WriteLine();}}class MyClass{public static int age;private string name;public static void Print1(int age){Console.WriteLine(age);}private void Print2(string name){Console.WriteLine(name);}}
}

√ C# - 19.怎么使用反射(P528)相关推荐

  1. 全球及中国反射全息光栅行业发展态势及前景动态预测报告*2022-2027

    全球及中国反射全息光栅行业发展态势及前景动态预测报告*2022-2027 ================================================ [报告编号]: BG4171 ...

  2. Programmer Log8[反射]_19.09.02

    1.认识反射机制 1.1 反射的"反"指的是根据对象来取得对象的来源信息 1.2 反射的三种方式 import java,util.Date;public class Test{p ...

  3. (CZ深入浅出Java基础)反射

    一.类的加载 1.类初始化的时机 创建类的实例 访问类的静态变量,或者为静态变量赋值 调用类的静态方法 使用反射方式来强制创建某个类或接口对应的java.lang.Class对象 初始化某个类的子类 ...

  4. 什么是php 的精华,PHP精华

    PHP性能优化 1.使用静态方法 2避免函数调用 time() – $_SERVER[REQUEST_TIME]; phpversion() – PHP_VERSION get_class – __C ...

  5. Java中的数据文件

    Java中的配置文件 Java自己的配置文件 – properties properties文件的编写 一般情况下,建议将文件存储在源码文件目录中 他的格式是 键值对 如:age=18 特别注意,不能 ...

  6. Java基础面试题第二期(2021最新版)

    本文收录于<面试小抄>系列,Github地址(可下载pdf):https://github.com/cosen1024/Java-Interview 国内Gitee(可下载pdf):htt ...

  7. Java基础篇面试题49问与答 (2021最新版)

    本文包含了String.包装类型.反射.泛型.序列化.异常和IO的常见面试题. 本文收录于<面试小抄>系列,Github地址:https://github.com/cosen1024/Ja ...

  8. ES6面试题(测试题)

    1.简述vue生命周期? 从vue实例被创建开始到该实例最终被销毁个过程叫做vue的生命周期.在这个周期内大致发生一下几件事,我们从vue实例被创建开始,首先vue实例被创建,之后开始数据的初始化,编 ...

  9. java基础加强视频zxx(1-32)

    ★1 课程价值与目标介绍: 在这个行业有没有发展,有没有前途,就看你的基础怎门样!! 学习能力,好的练兵场. 学好基础,能证明自身的学习能力. JKD1.5的新特性?通过面试成长了,酷6 南昌大学7K ...

最新文章

  1. #pragma pack的作用
  2. 我心中的核心组件(可插拔的AOP)~分布式Session组件
  3. 数论-扩展中国剩余定理
  4. mysql安装后变10g_Oracle 10G安装中一些常见问题解决
  5. 如何阻止复制剪切和粘贴事件
  6. 打印杨辉三角(数组练习)
  7. 北京工业大学c语言期末考试题,北京工业大学C语言部分练习答案.docx
  8. NumPy Beginner's Guide 2e 带注释源码 六、深入 NumPy 模块
  9. python3发送微信
  10. (转)对各种初始化函数的理解:OnInitDialog、InitInstance、InitApplication函数的理解...
  11. Python验证码识别初探(tesserocr库)
  12. 记录——《C Primer Plus (第五版)》第十章编程练习第六题
  13. educoder MongoDB 文档的高级查询操作
  14. HTTP报文(这篇讲得比较详细)
  15. Magoshare Data Recovery Enterprise(电脑免费数据恢复软件)绿色便携版V4.5.0 | 电脑数据恢复软件免费版下载
  16. 计算机组成电路图符号大全,电路图|电路图讲解|电路图符号大全_极客迷
  17. Python pickle 反序列化详解
  18. AVR单片机ATMEGA16编译软件ICCAVR的使用技巧与应用示例
  19. [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 6笔记
  20. 红警游戏开源代码带给我们的震撼

热门文章

  1. 怎么设置CAD建筑标高?CAD建筑标高设置技巧
  2. UR机器人(3)-精确设定TCP以及有效负载
  3. VHDL语言仿真激励文件testbench编写指南
  4. 创新药物研究核心技术—计算机辅助药物设计
  5. Unix时间戳与系统毫秒的转换
  6. 5. 使用PyTorch预先训练的模型执行目标检测
  7. 前端常用 60 余种工具方法
  8. 长沙北大青鸟java 学费_长沙北大青鸟学校好不好 长沙北大青鸟实力学费一览表:Java代码编写规范(二)...
  9. 中国互联网企业的生存模式与盈利思路
  10. minicom配置及使用方法