2016-12-14 64 views
3

有人可以解釋一下索引器有什麼好處嗎?索引器有什麼好處?

public class MyClass 
{ 
    private List<string> list = new List<string>() 

    public string this[int value] 
    { 
     get 
     { 
      return list[value]; 
     } 
    } 

    public string GetValue(int value) 
    { 
      return list[value]; 
    } 
} 

什麼是使用的好處:

MyClass target = new MyClass(); 
string value = target[0]; 

在這個:

MyClass target = new MyClass(); 
string value = target.GetValue(0); 
+4

你不需要寫'GetValue',你知道這個類是一個帶有索引器的集合,但是你可能會失去可讀性,因爲索引器沒有名字,所以不要誤用它。 –

+2

這是一個*語法糖*,優點是*可讀性* –

+0

@DmitryBychenko:可讀性不是好處,反之亦然,因爲索引器沒有名字 –

回答

7

這純粹是語法上的方便性和可讀性/表現。它仍然作爲一種方法實施。因此:如果您認爲target[0]對您的方案更明顯,方便和易讀:請使用索引器。