日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C#利用反射实现实体类ListT索引器

發(fā)布時(shí)間:2025/3/11 C# 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#利用反射实现实体类ListT索引器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

相關(guān)背景:

? ? ? ? ? 在項(xiàng)目開(kāi)發(fā)中,我們經(jīng)常會(huì)自定義一些實(shí)體類(lèi),在某些需要?jiǎng)討B(tài)賦值的功能中,我們無(wú)法知道到下一個(gè)需要賦值的字段名稱(chēng)是什么,只知道會(huì)從其他返回需要賦值的字段名稱(chēng)和值,這時(shí)候就需要實(shí)現(xiàn)索引器了,就像C# Datatable中的行索引器一樣,可以根據(jù)字段名稱(chēng)實(shí)現(xiàn)查找和賦值,如下所示:

DataTable dt = new DataTable(); dt.Columns.Add("UserName", typeof(string)); DataRow dr = dt.NewRow(); dr["UserName"] = “張三”;//索引器 dt.Rows.add(dr);

實(shí)體類(lèi)的索引器的代碼如下圖所示:

public abstract class EntityBase{/// <summary>/// 索引器,可以用字符串訪問(wèn)變量屬性/// </summary>/// <param name="_propertyName">屬性名稱(chēng)</param>/// <returns>屬性值,如果傳入的屬性名稱(chēng)不存在,返回null</returns>public object this[string _propertyName]{get{var pi = this.GetType().GetProperties(BindingFlags.Instance|BindingFlags.Public|BindingFlags.DeclaredOnly).FirstOrDefault(p => p.Name.Equals(_propertyName));//從所有獲取的屬性值中找到傳入的屬性值if (null != pi && null != pi.GetMethod){return pi.GetValue(this);}else{return null;}}set{var pi = this.GetType().GetProperties().FirstOrDefault(p => p.Name.Equals(_propertyName));if (null != pi && null != pi.SetMethod){if (pi.PropertyType.Equals(value.GetType())){pi.SetValue(this, value);}else{pi.SetValue(this, Convert.ChangeType(value, pi.PropertyType));}}}}}

EntityBase為抽象類(lèi),無(wú)法實(shí)例化,只要實(shí)體類(lèi)繼承EntityBase,便可獲得索引器功能,如下圖所示:

public class TabUser:EntityBase {public string UserName { get; set; }public string UserPwd { get; set; }public long UserID { get; set; } }TabUser User = UserLists.FirstOrDefault(); string pwd = User["UserPwd"].ToString();//實(shí)體類(lèi)索引器

?

總結(jié)

以上是生活随笔為你收集整理的C#利用反射实现实体类ListT索引器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。