[電繪]:Rattus rattus-黑鼠

圖片
  In some eras, rats represented the plague and were despised creatures, but in my eyes, humans and rats are no different. -- 在某些時代裡,老鼠代表著瘟疫,是人們唾棄的生物,然而在我眼裡,人與老鼠並無不同。

[C#]依照屬性名稱取得模型欄位值

 需求:

取得物件模型裡,某一個屬性欄位的值。

ex:我目前有一個模型TestModal(圖一),並new 出了一 個TestModal,分別給A、B屬性自己的值(圖二),假設今天想要只拿到B屬性欄位的值該如何辦到呢?


(圖一)


(圖二)

實作:

(一)寫一個依照屬性名稱取得欄位值的方法:


  /// <summary>
        /// 依照屬性名稱取得模型欄位值
        /// </summary>
        /// <typeparam name="T1"></typeparam>
        /// <param name="name">欄位名稱</param>
        /// <param name="t1"></param>
        /// <returns></returns>

        public static object GetValueByPropertyName<T1>(this string name, T1 t1)
        {
            return t1.GetType().GetProperty(name).GetValue(t1);
        }

(二)使用GetValueByPropertyName()取得Test裡屬性B的值


static void Main(string[] args)
        {
            var test = new TestModal()
            {
                A = "我是A",
                B = "我是B"
            };
            var propertyName = "B";
            Console.WriteLine(propertyName.GetValueByPropertyName<TestModal>(test));
        }

結果:



留言

這個網誌中的熱門文章

【AutoCAD常見問題】選取物件無藍色高亮顯效果

專題題目該從何開始呢

當兵四個月要帶些什麼? 健保轉出單需要嗎?