2014-02-13 64 views
0

我無法繼續執行下面的代碼。任何人都可以幫忙嗎?索引器與詞典

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace Demo_Inidexers 
{ 
    public class MyIndexer 
    { 
     Dictionary <int,string > testdctnry = new Dictionary<int,string>() ; 
     public string this[int index,string val ] 
     { 
      get 
      { 
       string temp; 
       if (index > 0) 
        MessageBox .Show ("Hey m Zero"); 
       return testdctnry[index]; 
      } 
      set 
      { 
       if (index > 1) 
        MessageBox.Show("Setting up"); 
       testdctnry.Add(index, val); 
      } 
     } 
    } 
    static class Program 
    { 

     static void Main() 
     { 
      MyIndexer MI = new MyIndexer(); 

     } 
    } 
} 

在上面的代碼中,我該如何使用索引器和字典。我對c#很陌生,請幫忙。我想了解索引器。

+0

是什麼類的擺在首位的目的是什麼? 'Dictionary'已經有一個索引器。只要使用它。 – Servy

回答

2

用於設置一個索引的值不應該被用來作爲第二個參數。 get根本無法訪問設定值,因爲沒有設定值。在set方法是有上下文關鍵字,value,已將該值設置爲索引:

public class MyIndexer 
{ 
    private Dictionary <int,string> testdctnry = new Dictionary<int,string>(); 
    public string this[int index] 
    { 
     get 
     { 
      if (index > 0) 
       MessageBox.Show("Hey m Zero"); 
      return testdctnry[index]; 
     } 
     set 
     { 
      if (index > 1) 
       MessageBox.Show("Setting up"); 
      testdctnry[index] = value; 
     } 
    } 
} 
+0

謝謝。你能告訴我一些我可以使用索引器的實時示例嗎? – Kenta