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

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

結(jié)果:”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#中的Lambda表達式和匿名方法

    初步認識C#中的Lambda表達式和匿名方法

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

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

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

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

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

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

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

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

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

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

    在做“亦歌桌面版”的時候,發(fā)現(xiàn)當打開歌詞狀態(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按鈕的方法實例詳解的相關資料,需要的朋友可以參考下
    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

最新評論

桐乡市| 金昌市| 杂多县| 泌阳县| 吉隆县| 泸水县| 江孜县| 曲靖市| 垫江县| 桂林市| 镇平县| 昆山市| 尖扎县| 腾冲县| 廉江市| 西乌珠穆沁旗| 美姑县| 松滋市| 北安市| 嘉义县| 和政县| 文山县| 东丰县| 安岳县| 手机| 赤水市| 调兵山市| 北辰区| 武平县| 武宣县| 栾城县| 沭阳县| 惠州市| 阳城县| 达日县| 晋州市| 奈曼旗| 卢湾区| 九江市| 惠州市| 贵港市|