public abstract class InstallationStepLibrary
{
private Dictionary<string, InstallationStep> DictSteps;
protected InstallationStepLibrary()
{
DictSteps = new Dictionary<string, InstallationStep>();
}
public InstallationStep this[string s]
{
get
{
return DictSteps[s];
}
set
{
DictSteps[s] = value;
}
}
protected void NewStep(string name, InstallationStep step)
{
this[name] = step;
}
}
我怀疑第一次使用'this'是从InstallationStep
的定义中链接构造函数,但我无法弄清楚第二个'this [name]'(intellisense告诉我类的范围{ {1}},这是有道理的...)可以是有效的语法,但确实如此。
如果它限定为字典......
答案 0 :(得分:1)
第二个[]
或:
protected void NewStep(string name, InstallationStep step)
{
this[name] = step;
}
只需调用类中定义的索引器即可。如果调用者刚刚使用它,它将工作相同:
installationStepLibrary[name] = step;
在类中定义的索引器是:
public InstallationStep this[string s]
{
get
{
return DictSteps[s];
}
set
{
DictSteps[s] = value;
}
}