0
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]'(智能感知告诉我类的范围InstallationStepLibrary,这是有道理的......)可以是有效的语法,但它是。

如果它的范围是字典,那将是有意义的......

4

1 回答 1

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;
    }
}
于 2017-04-25T16:22:00.970 回答