相关背景:
在项目开发中,我们经常会自定义一些实体类,在某些需要动态赋值的功能中,我们无法知道到下一个需要赋值的字段名称是什么,只知道会从其他返回需要赋值的字段名称和值,这时候就需要实现索引器了,就像C# Datatable中的行索引器一样,可以根据字段名称实现查找和赋值,如下所示:
DataTable dt = new DataTable();
dt.Columns.Add("UserName", typeof(string));
DataRow dr = dt.NewRow();
dr["UserName"] = “张三”;//索引器
dt.Rows.add(dr);
实体类的索引器的代码如下图所示:
public abstract class EntityBase
{
/// <summary>
/// 索引器,可以用字符串访问变量属性
/// </summary>
/// <param name="_propertyName">属性名称</param>
/// <returns>属性值,如果传入的属性名称不存在,返回null</returns>
public object this[string _propertyName]
{
get
{
var pi