C#通過屬性名稱獲取(讀取)屬性值的方法
之前在開發(fā)一個程序,希望能夠通過屬性名稱讀取出屬性值,但是由于那時候不熟悉反射,所以并沒有找到合適的方法,做了不少的重復性工作?。?/p>
然后今天我再上網(wǎng)找了找,被我找到了,跟大家分享一下。
其實原理并不復雜,就是通過反射利用屬性名稱去獲取屬性值,以前對反射不熟悉,所以沒想到啊~
不得不說反射是一種很強大的技術。。
下面給代碼,希望能幫到有需要的人。
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; }
}
}
如果覺得上面比較復雜了,可以看下面的簡化版。
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)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持我們!
上一篇:詳解二維碼生成工廠
欄 目:C#教程
本文標題:C#通過屬性名稱獲取(讀取)屬性值的方法
本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/6082.html
您可能感興趣的文章
- 01-10C#通過反射獲取當前工程中所有窗體并打開的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的方法
- 01-10C#通過Semaphore類控制線程隊列的方法
- 01-10C#實現(xiàn)ComboBox控件顯示出多個數(shù)據(jù)源屬性的方法
- 01-10C#實現(xiàn)獲取不同對象中名稱相同屬性的方法
- 01-10輕松學習C#的屬性
- 01-10C#通過正則表達式實現(xiàn)提取網(wǎng)頁中的圖片
- 01-10舉例講解C#中自動實現(xiàn)的屬性
- 01-10詳解C#中的屬性和屬性的使用
- 01-10詳解C#中的接口屬性以及屬性訪問器的訪問限制


閱讀排行
本欄相關
- 01-10C#通過反射獲取當前工程中所有窗體并
- 01-10關于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻播放器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已
隨機閱讀
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 04-02jquery與jsp,用jquery
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實例總結


