什么是“基地”在这个属性做什么?

时间:2013-08-28 18:58:08

标签: c# .net

我在将要开展的项目中偶然发现了这一点:

public int? OrgId
{
    get { return base["OrgId"] as int?; }
    set { base["OrgId"] = value; }
}

点击OrgId,Resharper带我去看这个签名的方法:

public override object this[string propertyName] { get; set; }

基地[“”]做什么?什么意思是覆盖的这个[]部分?在Google上找不到任何有意义的内容。

2 个答案:

答案 0 :(得分:6)

this[]是一个索引器:Indexers (C# Programming Guide)

base[]运行base类中定义的索引器。当在子类中重写索引器并且您想使用base类中定义的索引器时,可以使用它。

答案 1 :(得分:5)

这意味着基类有一个索引器,索引器接受一个字符串作为可能的参数。我不知道那个索引器的作用是在基类中。\

get你真正从该索引器中拉出来,而在set中你正在点击该索引器的set。它似乎只是一个包装器,因此这个类的使用者不必使用索引器它是一个不必具有内部类属性的实现。

我希望不是后者,因为如果是这样的话,他们可以用类似的东西编写更少的代码:

public int? OrgId { get; set; }