我在我将要开展的项目中偶然发现了这个:
public int? OrgId
{
get { return base["OrgId"] as int?; }
set { base["OrgId"] = value; }
}
Run Code Online (Sandbox Code Playgroud)
点击OrgId,Resharper带我去看这个签名的方法:
public override object this[string propertyName] { get; set; }
Run Code Online (Sandbox Code Playgroud)
base [""]做什么?什么意思是覆盖的这个[]部分?在Google上找不到任何有意义的内容.
这意味着基类具有索引器,并且该索引器接受字符串作为可能的参数.那个索引器的作用,我不知道,那是在基类中.
在get你实际上是从那个索引器中拉出来的,而set你正在击中set那个索引器.它似乎只是一个包装器,因此该类的使用者不必使用索引器,或者它是一个不必具有内部类属性的实现.
我希望不是后者,因为如果是这样的话,他们可以编写更少的代码,例如:
public int? OrgId { get; set; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |