目录

  • #通过反射获取对象属性值并设置属性值

    • 0、定义一个类
    • 1、通过属性名(字符串)获取对象属性值
    • 2、通过属性名(字符串)设置对象属性值
  • #获取对象的所有属性名称及类型
  • #判断对象是否包含某个属性

回到顶部

#通过反射获取对象属性值并设置属性值

0、定义一个类

    public class User{ public int Id { get; set; }public string Name { get; set; }public string Age { get; set; }}

1、通过属性名(字符串)获取对象属性值

   User u = new User();u.Name = "lily";var propName = "Name";var propNameVal = u.GetType().GetProperty(propName).GetValue(u, null);Console.WriteLine(propNameVal);// "lily"

2、通过属性名(字符串)设置对象属性值

   User u = new User();u.Name = "lily";var propName = "Name";var newVal = "MeiMei";u.GetType().GetProperty(propName).SetValue(u, newVal);Console.WriteLine(propNameVal);// "MeiMei"

回到顶部

#获取对象的所有属性名称及类型

  • 通过类的对象实现
   User u = new User();foreach (var item in u.GetType().GetProperties()){Console.WriteLine($"propName:{item.Name},propType:{item.PropertyType.Name}");}// propName: Id,propType: Int32// propName:Name,propType: String// propName:Age,propType: String
  • 通过类实现
   foreach (var item in typeof(User).GetProperties()){Console.WriteLine($"propName:{item.Name},propType:{item.PropertyType.Name}");}// propName: Id,propType: Int32// propName:Name,propType: String// propName:Age,propType: String

回到顶部

#判断对象是否包含某个属性

   static void Main(string[] args){User u = new User();bool isContain= ContainProperty(u,"Name");// true}public static bool ContainProperty( object instance, string propertyName){if (instance != null && !string.IsNullOrEmpty(propertyName)){PropertyInfo _findedPropertyInfo = instance.GetType().GetProperty(propertyName);return (_findedPropertyInfo != null);}return false;}
  • 将其封装为扩展方法
   public static class ExtendLibrary{/// <summary>/// 利用反射来判断对象是否包含某个属性/// </summary>/// <param name="instance">object</param>/// <param name="propertyName">需要判断的属性</param>/// <returns>是否包含</returns>public static bool ContainProperty(this object instance, string propertyName){if (instance != null && !string.IsNullOrEmpty(propertyName)){PropertyInfo _findedPropertyInfo = instance.GetType().GetProperty(propertyName);return (_findedPropertyInfo != null);}return false;}}
   static void Main(string[] args){User u = new User();bool isContain= u.ContainProperty("Name");// true}

C#通过属性名字符串获取、设置对象属性值相关推荐

  1. matplotlib之pyplot模块——获取/设置对象属性值(setp()、getp/get())

    当前有效matplotlib版本为:3.4.1. 概述 pyplot模块提供了获取/设置对象属性值的接口.功能类似于Python内置函数getattr和setattr.从源码上来看,get()是get ...

  2. 【MATLAB】基本绘图 ( 句柄值 | 对象句柄值获取 | 创建对象时获取句柄值 | 函数获取句柄值 | 获取 / 设置 对象属性 | 获取对象属性 )

    文章目录 一.对象句柄值获取 1.句柄值 2.创建对象时获取句柄值 3.函数获取句柄值 4.获取 / 设置 对象属性 二.获取对象属性 1.获取 线 对象属性 2.获取 坐标轴 对象属性 一.对象句柄 ...

  3. java根据属性获取对象_java反射工具类--通过指定属性名,获取/设置对象属性值

    java对象通过点运算符操作对象属性的方式没法使用for,while等循环,此工具主要解决这一问题. 例如:有一对象包含属性有一定规律 obj1: { name1: "张三", a ...

  4. 对象存储HTML自定义属性,设置对象属性_对象存储服务 OBS_SDK参考_Node.js_上传对象_华为云...

    开发过程中,您有任何问题可以在github上提交issue,或者在华为云对象存储服务论坛中发帖求助.接口参考文档详细介绍了每个接口的参数和使用方法. 您可以在上传对象时设置对象属性.对象属性包含对象长 ...

  5. Python面向对象基础:设置对象属性

    用类存储数据 类实际上就是一个数据结构,对于python而言,它是一个类似于字典的结构.当根据类创建了对象之后,这个对象就有了一个数据结构,包含一些赋值了的属性.在这一点上,它和其它语言的struct ...

  6. 个人永久性免费-Excel催化剂功能第56波-获取Excel对象属性相关自定义函数

    之前零散开发过一些自定义函数获取Excel对象属性,此次再细细地把有价值的属性都一一给开发完成,某些场景下,有这些小函数还是可以比较方便地实现一些通过Excel界面没法轻松获取到的信息. 修复与更新 ...

  7. JavaScript基础 - 21 (精确设置对象属性:value、writable、configurable、enumerable、getter、setter)

    对象的每个属性,额外有几个选项: value:默认值 writable:是否可写 configurable:是否可以重新配置 enumerable:是否可遍历 get:getter,读取属性时触发, ...

  8. java 反射 设置属性_Java通过反射机制动态设置对象属性值的方法

    /** * MethodName: getReflection * Description:解析respXML 在通过反射设置对象属性值 * User: liqijing * Date:2015-7- ...

  9. 微信小程序.setData 设置对象属性值,不改变对象整体属性

    .setData 设置对象属性值 步骤一:data初始化数据 userInfo: { nickName:'昵称', avatarUrl:'https://c-ssl.duitang.com/tx.pn ...

最新文章

  1. 阿里代码扫描插件安装 (IDEA)
  2. 《分布式操作系统》知识点(8~14)二
  3. 杭电oj1072java实现bfs
  4. java8压缩,如何使用Java 8压缩多个列表?
  5. I/O复用函数的使用——select
  6. Linux命令之ifconfig
  7. 使用Couchbase分页
  8. js代码测试。【一定要在真实工程下来测试是否好用】
  9. Dynatable – 基于 HTML5 jQuery 的交互表格插件
  10. C/C++[ w1785]字符串连接
  11. 最大生成树算法matlab,基于最大生成树的社团划分算法
  12. linux驱动开发详解——宋宝华 笔记
  13. 互联网电商都是怎么用工厂模式的?
  14. Hive 不支持 where 子句中的子查询, SQL 常用的 exist in 子句需要改写。这一改写相对简单。考虑以下 SQL 查询语句:
  15. RESTful Web 服务:教程
  16. Auto.jsMIUI小米手机锁屏界面无法上滑输入密码解锁的问题 以及如何输入密码进行解锁
  17. 08 | 数据采集:如何自动化采集数据?
  18. ebc是什么意思_ebc是什么意思?金蝶软件可靠吗?
  19. 如何正确使用步道乐跑
  20. Android7.0 Phone应用源码分析(二) phone来电流程分析

热门文章

  1. 从Zabbix数据库中提取内存采集的数据,做内存使用率计算
  2. mysql 分区信息查看
  3. ubuntu11.04正式版下载地址
  4. matlab数字仿真实验,DVR+备用电源自动投入的MATLAB数字仿真实验仿真实验
  5. 使用fetch封装ajax_如何使用Fetch在JavaScript中进行AJAX调用
  6. app之---豆果美食
  7. [JSOI2018]潜入行动
  8. mongoDB操作详细
  9. Nmap命令的常用实例
  10. 团队作业3——需求改进系统设计