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

C#反射基本应用

1、反射
反射是.NET Framework的一个特性,它允许在运行时获取类型的信息以及动态创建对象,调用方法,以及访问字段和属性。
2、代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;namespace ReflectionTest
{internal class Program{static void Main(string[] args){//1、使用反射动态创建类型的实例Assembly assembly = Assembly.GetExecutingAssembly();Type type = assembly.GetType("ReflectionTest.Student");object StudentInstance = Activator.CreateInstance(type);//2、使用反射调用类型的字段FieldInfo fieldInfo = type.GetField("Name");string fieldValue = (string)fieldInfo.GetValue(StudentInstance);Console.WriteLine($"Student Name 字段值为{fieldValue}");//3、使用反射调用类型的属性PropertyInfo propertyInfo = type.GetProperty("Sorce");int propertyValue = (int)propertyInfo.GetValue(StudentInstance);Console.WriteLine($"Student Name 属性值为{propertyValue}");//4、使用反射调用类型的方法MethodInfo methodInfo = type.GetMethod("Level");object output=methodInfo.Invoke(StudentInstance, new object[] { 80 });Console.WriteLine($"Student Level 方法返回值为{output}");Console.ReadKey();}}public class Student{public string Name = "Tom";public int Sorce { get; set; } = 91;public string Level(int score){string level = "";if (score < 60){level = "不及格";}else if (score < 80){level = "及格";}else if (score < 90){level = "良好";}else{level = "优秀";}return level;}}
}

3、运行效果
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring框架配置进阶_自动装配(XML和注解)
  • 【C++知识点总结全系列 (08)】:面向对象编程OOP
  • 新火种AI|OpenAI的CEO又有新动作?这次他成立了AI健康公司
  • 如何利用java依赖jave-all-deps实现视频格式转换
  • 中英双语介绍美国的州:阿肯色州(Arkansas)
  • 在make类构建系统配置文件中定义函数宏
  • Laravel5+mycat 报错 “Packets out of order”
  • CTF-PWN-kernel-栈溢出(retuser rop pt_regs ret2dir)
  • EUC 2024 I. Disks
  • golang 项目打包部署环境变量设置
  • FPGA原型验证(七):如何选择、搭建原型验证平台?
  • Java-关键字(static,final)
  • redis数据库
  • ER模型理论和三范式
  • Infinitar链游新发展新机遇
  • php的引用
  • Angular 4.x 动态创建组件
  • CSS 专业技巧
  • go语言学习初探(一)
  • java8 Stream Pipelines 浅析
  • Javascript编码规范
  • JAVA之继承和多态
  • Shadow DOM 内部构造及如何构建独立组件
  • use Google search engine
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 读懂package.json -- 依赖管理
  • 技术发展面试
  • 力扣(LeetCode)56
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 如何优雅地使用 Sublime Text
  • 小而合理的前端理论:rscss和rsjs
  • 函数计算新功能-----支持C#函数
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • # Kafka_深入探秘者(2):kafka 生产者
  • # windows 安装 mysql 显示 no packages found 解决方法
  • ######## golang各章节终篇索引 ########
  • #《AI中文版》V3 第 1 章 概述
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #include
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (南京观海微电子)——COF介绍
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (十)c52学习之旅-定时器实验
  • (十一)图像的罗伯特梯度锐化
  • (一)kafka实战——kafka源码编译启动