c# 获取某个对象的[公有属性]的名称,类型,值
2024-08-29 18:28:03
/// <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 = ;
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(,''));
// sb.Append("类型:" + pi.PropertyType.FullName + " 属性名:" + pi.Name + " 值:" + pi.GetValue(obj, null) + "");
}
return sb.ToString();
}
最新文章
- cocos2d-x3.x自定义事件
- 从Eclipse 到Unity(Android)
- js判断变量是否等于undefined
- poj3177 &;&; poj3352 边双连通分量缩点
- SU Demo之01MakingData--02MultiShot
- topcoder SRM 593 DIV2 WolfDelaymaster
- kfed (kernel file editor:内核文件编辑器)
- launch文件概述---1
- Redis中的发布与订阅
- jQuery生成全页面的悬浮覆盖层效果(overlay)
- CSS学习备忘
- Jquery关闭离开页面时提醒
- 【UVALive - 3713】Astronauts (2-SAT)
- HTML5实现图片文件异步上传
- IIS配置 Web部署 svg/woff/woff2字体 404错误
- UILabel自适应高度
- 本地jar包添加至Maven仓库
- Java多线程02(线程安全、线程同步、等待唤醒机制)
- mysql 字段指定值靠前排序方法,多字段排序排序方法
- 二十六、Linux 进程与信号---system 函数 和进程状态切换