√ C# - 19.怎么使用反射(P528)
- 反射是在程序运行时动态地获取程序或程序集中的元数据,例如类、字段、属性、方法等。
- 通过枚举类型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)相关推荐
- 全球及中国反射全息光栅行业发展态势及前景动态预测报告*2022-2027
全球及中国反射全息光栅行业发展态势及前景动态预测报告*2022-2027 ================================================ [报告编号]: BG4171 ...
- Programmer Log8[反射]_19.09.02
1.认识反射机制 1.1 反射的"反"指的是根据对象来取得对象的来源信息 1.2 反射的三种方式 import java,util.Date;public class Test{p ...
- (CZ深入浅出Java基础)反射
一.类的加载 1.类初始化的时机 创建类的实例 访问类的静态变量,或者为静态变量赋值 调用类的静态方法 使用反射方式来强制创建某个类或接口对应的java.lang.Class对象 初始化某个类的子类 ...
- 什么是php 的精华,PHP精华
PHP性能优化 1.使用静态方法 2避免函数调用 time() – $_SERVER[REQUEST_TIME]; phpversion() – PHP_VERSION get_class – __C ...
- Java中的数据文件
Java中的配置文件 Java自己的配置文件 – properties properties文件的编写 一般情况下,建议将文件存储在源码文件目录中 他的格式是 键值对 如:age=18 特别注意,不能 ...
- Java基础面试题第二期(2021最新版)
本文收录于<面试小抄>系列,Github地址(可下载pdf):https://github.com/cosen1024/Java-Interview 国内Gitee(可下载pdf):htt ...
- Java基础篇面试题49问与答 (2021最新版)
本文包含了String.包装类型.反射.泛型.序列化.异常和IO的常见面试题. 本文收录于<面试小抄>系列,Github地址:https://github.com/cosen1024/Ja ...
- ES6面试题(测试题)
1.简述vue生命周期? 从vue实例被创建开始到该实例最终被销毁个过程叫做vue的生命周期.在这个周期内大致发生一下几件事,我们从vue实例被创建开始,首先vue实例被创建,之后开始数据的初始化,编 ...
- java基础加强视频zxx(1-32)
★1 课程价值与目标介绍: 在这个行业有没有发展,有没有前途,就看你的基础怎门样!! 学习能力,好的练兵场. 学好基础,能证明自身的学习能力. JKD1.5的新特性?通过面试成长了,酷6 南昌大学7K ...
最新文章
- #pragma pack的作用
- 我心中的核心组件(可插拔的AOP)~分布式Session组件
- 数论-扩展中国剩余定理
- mysql安装后变10g_Oracle 10G安装中一些常见问题解决
- 如何阻止复制剪切和粘贴事件
- 打印杨辉三角(数组练习)
- 北京工业大学c语言期末考试题,北京工业大学C语言部分练习答案.docx
- NumPy Beginner's Guide 2e 带注释源码 六、深入 NumPy 模块
- python3发送微信
- (转)对各种初始化函数的理解:OnInitDialog、InitInstance、InitApplication函数的理解...
- Python验证码识别初探(tesserocr库)
- 记录——《C Primer Plus (第五版)》第十章编程练习第六题
- educoder MongoDB 文档的高级查询操作
- HTTP报文(这篇讲得比较详细)
- Magoshare Data Recovery Enterprise(电脑免费数据恢复软件)绿色便携版V4.5.0 | 电脑数据恢复软件免费版下载
- 计算机组成电路图符号大全,电路图|电路图讲解|电路图符号大全_极客迷
- Python pickle 反序列化详解
- AVR单片机ATMEGA16编译软件ICCAVR的使用技巧与应用示例
- [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 6笔记
- 红警游戏开源代码带给我们的震撼