zoukankan      html  css  js  c++  java
  • 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}
    ", 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}
    ", type, name, value?.ToString()??"null",i.ToString().PadLeft(2,'0'));
                   // sb.Append("类型:" + pi.PropertyType.FullName + " 属性名:" + pi.Name + " 值:" + pi.GetValue(obj, null) + "");
                }
                return sb.ToString();
            }
  • 相关阅读:
    编程思想之正则表达式
    SQL查询顺序
    hibernate inverse属性的作用
    介绍一下Hibernate的二级缓存
    JSON数据
    你没玩过的全新版本!Win10这些骚操作你知多少
    VSCode 小鸡汤 第01期
    Editor REST Client
    k8s常用命令
    【项目3-2】多肉植物网站
  • 原文地址:https://www.cnblogs.com/sanday/p/10149543.html
Copyright © 2011-2022 走看看