2017-04-25 76 views
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; 
    } 
} 

我懷疑是第一次使用的「本」是從InstallationStep定義鏈構造,但是我無法弄清楚如何使用第二「這個[名]」(其智能感知告訴我作用域到類InstallationStepLibrary,這有道理......)可以是有效的語法,但它是。這個例子中第二個[]的目的是什麼?

它將使意義,如果它作用域字典...

+1

這是一個索引:'公共InstallationStep此[字符串s]'和'這[name] = step;'使用索引器。 –

+0

字典有私有修飾符,索引器'this [string s]'提供對它的訪問。 – Ryan

回答

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; 
    } 
} 
相關問題