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

mis*_*hap 1 .net c#

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

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上找不到任何有意义的内容.

Mar*_*zek 6

this[]是一个索引器:索引器(C#编程指南).

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


Mik*_*oud 5

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

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

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

public int? OrgId { get; set; }
Run Code Online (Sandbox Code Playgroud)