C#通過屬性名稱獲取(讀取)屬性值的方法
之前在開發(fā)一個程序,希望能夠通過屬性名稱讀取出屬性值,但是由于那時候不熟悉反射,所以并沒有找到合適的方法,做了不少的重復(fù)性工作啊!
然后今天我再上網(wǎng)找了找,被我找到了,跟大家分享一下。
其實原理并不復(fù)雜,就是通過反射利用屬性名稱去獲取屬性值,以前對反射不熟悉,所以沒想到啊~
不得不說反射是一種很強(qiáng)大的技術(shù)。。
下面給代碼,希望能幫到有需要的人。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace PropertyNameGetPropertyValueDemo { class Program { static void Main(string[] args) { Person ps = new Person(); ps.Name = "CTZ"; ps.Age = 21; Demo dm = new Demo(); dm.Str = "String"; dm.I = 1; Console.WriteLine(ps.GetValue("Name")); Console.WriteLine(ps.GetValue("Age")); Console.WriteLine(dm.GetValue("Str")); Console.WriteLine(dm.GetValue("I")); } } abstract class AbstractGetValue { public object GetValue(string propertyName) { return this.GetType().GetProperty(propertyName).GetValue(this, null); } } class Person : AbstractGetValue { public string Name { get; set; } public int Age { get; set; } } class Demo : AbstractGetValue { public string Str { get; set; } public int I { get; set; } } }
如果覺得上面比較復(fù)雜了,可以看下面的簡化版。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace GetValue { class Program { static void Main(string[] args) { Person ps = new Person(); ps.Name = "CTZ"; ps.Age = 21; Console.WriteLine(ps.GetValue("Name")); Console.WriteLine(ps.GetValue("Age")); } } class Person { public string Name { get; set; } public int Age { get; set; } public object GetValue(string propertyName) { return this.GetType().GetProperty(propertyName).GetValue(this, null); } } }
實質(zhì)語句只有一句:
this.GetType().GetProperty(propertyName).GetValue(this, null);
其他可以忽略。。
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
C#從數(shù)據(jù)庫讀取數(shù)據(jù)到DataSet并保存到xml文件的方法
這篇文章主要介紹了C#從數(shù)據(jù)庫讀取數(shù)據(jù)到DataSet并保存到xml文件的方法,涉及C#操作DataSet保存到XML文件的技巧,需要的朋友可以參考下2015-04-04C#滑動驗證碼拼圖驗證功能實現(xiàn)(SlideCaptcha)
目前網(wǎng)站上的驗證碼機(jī)制可謂是五花八門,有簡單的數(shù)字驗證,有摻雜了字母和文字的混淆驗證,還有通過滑塊進(jìn)行的拼圖驗證,下面這篇文章主要給大家介紹了關(guān)于C#滑動驗證碼拼圖驗證功能的實現(xiàn)方法,需要的朋友可以參考下2022-04-04C#基于正則表達(dá)式實現(xiàn)獲取網(wǎng)頁中所有信息的網(wǎng)頁抓取類實例
這篇文章主要介紹了C#基于正則表達(dá)式實現(xiàn)獲取網(wǎng)頁中所有信息的網(wǎng)頁抓取類,結(jié)合完整實例形式分析了C#正則網(wǎng)頁抓取類與使用技巧,需要的朋友可以參考下2017-05-05