我在将要从事的项目中偶然发现了这一点:
public int? OrgId
{
get { return base["OrgId"] as int?; }
set { base["OrgId"] = value; }
}
单击OrgId,Resharper将我带到此签名的方法:
public override object this[string propertyName] { get; set; }
base [“”]有什么作用?覆盖的this []部分意味着什么?在Google上找不到任何有意义的信息。
最佳答案
这意味着基类具有索引器,并且该索引器接受字符串作为可能的参数。我不知道该索引器的作用是在基类中。\
在get
中,您实际上是从该索引器中拉出的,而在set
中,您是在该索引器中的set
中。看来这只是一个包装,所以此类的使用者不必使用索引器,或者它是不需要内部类属性的实现。
我希望不是后者,因为如果是这样的话,他们本可以编写更少的代码,例如:
public int? OrgId { get; set; }
关于c# - 此属性的“基础”是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18496078/