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();
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM