欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C# PropertyInfo類案例詳解

 更新時間:2021年08月28日 15:38:13   作者:-小龍人  
這篇文章主要介紹了C# PropertyInfo類案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下

對一個對象進行屬性分析,并得到相應的屬性值,并判斷屬性的默認值以及空值

   public class People
   {
       public string name { get; set; }
       public int age { get; set; }
       public DateTime birthday { get; set; }
       public bool isActive { get; set; }
       public List<Address> address{get;set;}

   }

   public class Address
   {
       public string country { get; set; }
       public string province { get; set; }
       public string city { get; set; }
   }

   class Program
   {       
       static void Main(string[] args)
       {
           List<Address> address = new List<Address>()
           {
               new Address(){
                   country="china",
                   province="anHui",
                   city="bengBu",
               },
               new Address(){
                   country="china",
                   city="shangHai",
               },
           };
           People people = new People()
           {
               name="wangqilong",
               age=23,
               birthday=Convert.ToDateTime("2018-09-15"),
               isActive=true,
               address=address
           };
           string str = method(people);
       }

       public static string method(Object obj)
       {
           string str = "";

           Type postType = obj.GetType();
           PropertyInfo[] postTypeInfos = postType.GetProperties(); //返回為當前 Type 的所有公共屬性,PropertyInfo[] PropertyInfo 的所有公共屬性的 Type 對象數(shù)組

           foreach (PropertyInfo p in postTypeInfos)       
           {
               if (p.PropertyType.FullName == typeof(DateTime).FullName)
               {
                   DateTime pValue = (DateTime)p.GetValue(obj, null);
                   if (pValue != null && pValue != DateTime.MinValue)    //dateTime類型申明時默認值為最小值
                   {
                       str += p.Name + ":" + pValue + ";";
                   }
               }
               else if (p.PropertyType.FullName == typeof(Int32).FullName)
               {
                   int pValue = (int)p.GetValue(obj, null);
                   if (pValue != 0)                                //int類型申明時默認值為最小值0
                   {
                       str += p.Name + ":" + pValue + ";";
                   }
               }
               else if (p.PropertyType.FullName == typeof(Boolean).FullName)
               {
                   Object pValue = p.GetValue(obj, null);
                   str += p.Name + ":" + pValue + ";";
               }
               else if (p.PropertyType.FullName == typeof(String).FullName)
               {
                   Object pValue = p.GetValue(obj, null);
                   str += p.Name + ":" + pValue + ";";
               }
               //如果傳入的對象包含集合,集合中是另個對象
               else if (p.PropertyType.FullName == typeof(List<Address>).FullName)
               {
                   List<Address> list = (List<Address>)p.GetValue(obj, null);
                   if (list != null)
                   {
                       foreach (Address address in list)
                       {
                           str += p.Name + ":" + address.country+","+address.province+","+address.city + ";";

                       }
                   }
               }
           }
           return str;
       }
   }

結果:”name:wangqilong;age:23;birthday:2018/9/15 0:00:00;isActive:True;address:china,anHui,bengBu;address:china,,shangHai;”

關于PropertyInfo類信息: https://docs.microsoft.com/zh-cn/dotnet/api/system.reflection.propertyinfo?view=netframework-1.1

到此這篇關于C# PropertyInfo類案例詳解的文章就介紹到這了,更多相關C# PropertyInfo類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C#獲取視頻某一幀的縮略圖的方法

    C#獲取視頻某一幀的縮略圖的方法

    這篇文章主要介紹了C#獲取視頻某一幀的縮略圖的方法,涉及執(zhí)行CMD命令及針對視頻文件操作的技巧,具有一定的實用價值,需要的朋友可以參考下
    2014-11-11
  • C# GDI在控件上繪圖的方法

    C# GDI在控件上繪圖的方法

    這篇文章主要介紹了C# GDI在控件上繪圖的方法,包括了常見的鼠標事件及繪圖操作,需要的朋友可以參考下
    2014-09-09
  • C#中英文混合字符串截取函數(shù)

    C#中英文混合字符串截取函數(shù)

    這篇文章介紹了C#中英文混合字符串截取函數(shù),有需要的朋友可以參考一下
    2013-09-09
  • C# 圖片與Base64碼的相互轉化問題(代碼詳解)

    C# 圖片與Base64碼的相互轉化問題(代碼詳解)

    這篇文章主要介紹了C# 圖片與Base64碼的相互轉化的代碼,通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • C# Random類的正確應用方法

    C# Random類的正確應用方法

    這篇文章主要介紹了C# Random類的正確應用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • C#編程獲取各種電腦硬件信息的方法示例

    C#編程獲取各種電腦硬件信息的方法示例

    這篇文章主要介紹了C#編程獲取各種電腦硬件信息的方法,結合實例形式分析了C#獲取電腦CPU、主板、硬盤、BIOS編號等信息的相關操作技巧與注意事項,需要的朋友可以參考下
    2017-08-08
  • C#操作SQLite實現(xiàn)數(shù)據(jù)的增刪改查

    C#操作SQLite實現(xiàn)數(shù)據(jù)的增刪改查

    SQLite是一個輕量級、跨平臺的關系型數(shù)據(jù)庫,在小型項目中,方便,易用,同時支持多種開發(fā)語言。本文將用C#語言對SQLite 的一個封裝,實現(xiàn)數(shù)據(jù)的增刪改查。需要的可以參考一下
    2022-01-01
  • C#繪制實時曲線圖的方法詳解

    C#繪制實時曲線圖的方法詳解

    這篇文章主要為大家詳細介紹了如何利用C#繪制實時曲線圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#中如何在Excel工作表創(chuàng)建混合型圖表實例

    C#中如何在Excel工作表創(chuàng)建混合型圖表實例

    本篇文章主要介紹了C#中如何在Excel工作表創(chuàng)建混合型圖表實例,具有一定的參考價值,有需要的可以了解一下。
    2016-11-11
  • C#實現(xiàn)附件上傳和下載功能

    C#實現(xiàn)附件上傳和下載功能

    這篇文章主要介紹了C#實現(xiàn)附件上傳和下載功能,需要的朋友可以參考下
    2015-11-11

最新評論