最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# PropertyInfo類案例詳解

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

對一個對象進行屬性分析,并得到相應(yīng)的屬性值,并判斷屬性的默認(rèn)值以及空值

   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(); //返回為當(dāng)前 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類型申明時默認(rèn)值為最小值
                   {
                       str += p.Name + ":" + pValue + ";";
                   }
               }
               else if (p.PropertyType.FullName == typeof(Int32).FullName)
               {
                   int pValue = (int)p.GetValue(obj, null);
                   if (pValue != 0)                                //int類型申明時默認(rèn)值為最小值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;
       }
   }

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

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

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

相關(guān)文章

  • 初步認(rèn)識C#中的Lambda表達式和匿名方法

    初步認(rèn)識C#中的Lambda表達式和匿名方法

    這篇文章主要介紹了初步認(rèn)識C#中的Lambda表達式和匿名方法,本文著重講解Lambda表達式和匿名方法的基礎(chǔ)知識,需要的朋友可以參考下
    2015-01-01
  • C#遞歸算法尋找數(shù)組中第K大的數(shù)

    C#遞歸算法尋找數(shù)組中第K大的數(shù)

    首先將向量V從中間位置分開,分成左和右,分好后,中間值的索引如果恰恰等于K,就找到了,否則如果中間元素索引大于K,則在左子表中繼續(xù)查找,忽略右子表,如果中間值索引小于K,則在右子表中繼續(xù)查找,如此循環(huán)往復(fù)。
    2016-06-06
  • C#實現(xiàn)熱更新服務(wù)器程序的具體過程

    C#實現(xiàn)熱更新服務(wù)器程序的具體過程

    什么是熱更新?就是不停機更新,實時更新,這篇文章主要給大家介紹了關(guān)于C#實現(xiàn)熱更新服務(wù)器程序的具體過程,通過熱更新改善用戶體驗(節(jié)省流量、時間、操作程度),需要的朋友可以參考下
    2021-07-07
  • C#操作SQLite數(shù)據(jù)庫方法小結(jié)

    C#操作SQLite數(shù)據(jù)庫方法小結(jié)

    這篇文章介紹了C#操作SQLite數(shù)據(jù)庫的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • C# Winform實現(xiàn)表格復(fù)制粘貼效果

    C# Winform實現(xiàn)表格復(fù)制粘貼效果

    這篇文章主要為大家學(xué)習(xí)介紹了如何通過C# Winform實現(xiàn)表格復(fù)制粘貼效果,文中的示例代碼講解詳細(xì),具有一定的參考價值,需要的可以了解一下
    2023-07-07
  • c# 重載WndProc,實現(xiàn)重寫“最小化”的實現(xiàn)方法

    c# 重載WndProc,實現(xiàn)重寫“最小化”的實現(xiàn)方法

    在做“亦歌桌面版”的時候,發(fā)現(xiàn)當(dāng)打開歌詞狀態(tài)下,用最小化隱藏窗體到托盤的話(如下code #1),在調(diào)出發(fā)現(xiàn)歌詞縮小了(雖然顯現(xiàn)的窗體大小跟剛才一樣),從這點看調(diào)用該方法其實窗體大小是改變了的(這個過程只是不可視而已)。
    2009-02-02
  • 詳解C#中委托,事件與回調(diào)函數(shù)講解

    詳解C#中委托,事件與回調(diào)函數(shù)講解

    這篇文章主要介紹了詳解C#中委托,事件與回調(diào)函數(shù)講解,小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。
    2016-12-12
  • C#動態(tài)創(chuàng)建button按鈕的方法實例詳解

    C#動態(tài)創(chuàng)建button按鈕的方法實例詳解

    這篇文章主要介紹了C#動態(tài)創(chuàng)建button按鈕的方法實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • c#字符串值類型與引用類型比較示例

    c#字符串值類型與引用類型比較示例

    這篇文章主要介紹了c#字符串值類型與引用類型比較示例,需要的朋友可以參考下
    2014-03-03
  • C# yield在WCF中的錯誤使用(二)

    C# yield在WCF中的錯誤使用(二)

    這篇文章主要介紹了C# yield在WCF中的錯誤使用(二),本文講解的內(nèi)容據(jù)說是99%的開發(fā)人員都有可能犯的錯誤,需要的朋友可以參考下
    2015-04-04

最新評論

新田县| 宜兰县| 大同市| 石渠县| 房产| 九江市| 阳信县| 安达市| 井陉县| 家居| 石景山区| 阿鲁科尔沁旗| 道真| 黑水县| 古蔺县| 鄂伦春自治旗| 阜平县| 米易县| 潜山县| 仙游县| 伊春市| 凤庆县| 浮山县| 巴塘县| 临漳县| 临武县| 呼伦贝尔市| 横山县| 额济纳旗| 蓬安县| 深水埗区| 康乐县| 泰和县| 清新县| 乌兰察布市| 柘城县| 得荣县| 汉中市| 酒泉市| 青阳县| 拉萨市|