c# 读取对象的[公有属性]的名称,类型,值
/// <summary>
/// 获取某个对象的[公有属性]的名称,类型,值
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string GetPropertyValue<T>(T obj,bool onlyGetNull=false)
{
if (obj == null)
{
return "null";
}
Type t = obj.GetType();//获得该类的Type
//再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了
var sb = new StringBuilder();
sb.AppendFormat("类型{0} [公有属性]的名称,类型,值{1}\r\n", t.FullName, onlyGetNull?"只显示空值的":"");
var i = 0;
foreach (PropertyInfo pi in t.GetProperties())
{
var name = pi.Name;//获得属性的名字,后面就可以根据名字判断来进行些自己想要的操作
var value = pi.GetValue(obj, null);//用pi.GetValue获得值
var type = value?.GetType() ?? typeof(object);//获得属性的类型
if (onlyGetNull&&value!=null) continue;
i++;
sb.AppendFormat("{3} {0} {1}={2}\r\n", type, name, value?.ToString()??"null",i.ToString().PadLeft(2,'0'));
// sb.Append("类型:" + pi.PropertyType.FullName + " 属性名:" + pi.Name + " 值:" + pi.GetValue(obj, null) + "");
}
return sb.ToString();
}
c# 读取对象的[公有属性]的名称,类型,值的更多相关文章
- c# 获取某个对象的[公有属性]的名称,类型,值
/// <summary> /// 获取某个对象的[公有属性]的名称,类型,值 /// </summary> /// <typeparam name="T&qu ...
- python 面向对象 公有属性
公有属性定义 公有属性也叫作类变量 静态字段 class role(): # 传参数 # 公有属性都在这里定义 # 在类里直接定义的属性即是公有属性 nationality = 'JP' def ...
- js 对象方法、类方法、原型方法的区别;私有属性、公有属性、公有静态属性的区别
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- C#读取对象实例的值和对对象的属性自动赋值方法
using System; using System.Data; using System.Reflection; namespace DBUtility { /// <summary> ...
- 对象方法、类方法、原型方法 && 私有属性、公有属性、公有静态属性
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- JavaScript函数之实际参数对象(arguments) / callee属性 / caller属性 / 递归调用 / 获取函数名称的方法
函数的作用域:调用对象 JavaScript中函数的主体是在局部作用域中执行的,该作用域不同于全局作用域.这个新的作用域是通过将调用对象添加到作用域链的头部而创建的(没怎么理解这句话,有理解的亲可以留 ...
- js遍历对象所有的属性名称和值
/* * 用来遍历指定对象所有的属性名称和值 * obj 需要遍历的对象 * author: Jet Mah * website: http://www.javatang.com/archives/2 ...
- 遍历JavaScript某个对象所有的属性名称和值
/* * 用来遍历指定对象所有的属性名称和值 * obj 需要遍历的对象 */ function allPrpos(obj) { // 用来保存所有的属性名称和值 var props = " ...
随机推荐
- VUE3 之 插槽的使用 - 这个系列的教程通俗易懂,适合新手
1. 概述 非理性定律告诉我们: 人们总是习惯于以情感去判断眼前的事物,非理性的去做决定. 对于长远的利益,人们更愿意去选择短期的利益. 因此在做决定前要让自己冷静,理性的分析,让自己看的更远. 言归 ...
- python 小兵内置函数进制转换
Python内置函数进制转换的用法 使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Conve ...
- 微信小程序--给数组的每个对象添加动画(数据驱动)
思路:用数据驱动事件,用数组的方式去对循环数组的每个对象进行操作 js代码: data:{ selectCategory: [{ name: '生产模式', content: [{ txt: '原厂' ...
- java8 stream详细
转载: https://zhuanlan.zhihu.com/p/299064490
- Swift 学习网址精选 By HL
虽然目前iOS大部分的项目开发语言用的不是Swift,但随着Swift的不断强大,取代Objective-C 指日可待,所以学习Swift是十分必要的.但毕竟是亲儿子,目前只有Foundation被翻 ...
- 利用redis+AOP简单处理MQ冥等问题
思路: 1.利用redis内部的串行执行特性,使用getandset()处理分布式问题; 2.注解提供入参选择,通过数据抽取后计算MD5值,实现业务性值的冥等: 代码区: 1.注解 1 /** 2 * ...
- Centos 系统目录概述
Linux目录一切从根目录开始,即"/",根下面的目录是一个有层次的树状结构.并且分区或磁盘是必须挂载在根目录才可以正常访问.做一个形象的比喻:目录类似一个一个的入口,而根目录则是 ...
- python小白记录二 ——自动化测试selenium中配置浏览器
1.根据不同的浏览器 下载不同的驱动,下面是谷歌的驱动 下载地址:ChromeDriver - WebDriver for Chrome - Downloads (chromium.org) ...
- 「Python实用秘技05」在Python中妙用短路机制
本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第5期 ...
- Solution -「ACM-ICPC BJ 2002」「POJ 1322」Chocolate
\(\mathcal{Description}\) Link. \(c\) 种口味的的巧克力,每种个数无限.每次取出一个,取 \(n\) 次,求恰有 \(m\) 个口味出现奇数次的概率. \( ...