2010-10-25 61 views
2

我創建一個字典,然後用main()中的條目填充它,然後調用使用上述字典的方法。在傳遞給此方法的參數中沒有包含字典,我怎樣才能訪問它而不會出現錯誤'非靜態字段,方法或屬性'XXX.YYY.dict'需要對象引用?從C#中主要的方法訪問字典#

編輯:這裏是代碼請求:

public static void Main() 

    { 
     ulong board = AS | KH | FD | FC | TH | SH | NC; 
     Dictionary<ulong, int> dict; dict = new Dictionary<ulong, int>(); 

     for (int a = 0; a < 49344; a++) 
     { 
      dict.Add(helloworld.Table.handhashes[a], helloworld.Table.ratings[a]); 
     } 


     int hand = 0; 

     for (int ai1 = 0; ai1 < 100000000; ai1++) 
     { 
      hand = FCheck(board); 
     } 
} 

錯誤發生在F確認,下面一行:

FCheck = dict(condensedBoard); 
+2

能否請您包括您要使用的代碼? – 2010-10-25 13:22:22

+0

你可能會在這裏發佈你的代碼......聽起來像是一個非常基本的問題。讀一本書可能也有幫助。 – 2010-10-25 13:23:53

+0

更多的信息不會錯過這裏,以及Ryan Berger所建議的代碼。 – jimplode 2010-10-25 13:24:32

回答

1

讓它全球?

static Dictionary<X, X> Entries; 

public static void main(string[] args) 
{ 
    // populate and then call dostuff 
} 

public static X dostuff(a) 
{ 
    return Entries[a]; 
} 

+0

請告訴我你沒有使用「全球」這個詞? – 2010-10-25 13:24:18

+0

全球在類 - 而不是本地。這就是我被教導的方式。 :) – Blam 2010-10-25 13:25:08

2

你可以把字典的靜態變量,主要只是填充,但它遠遠更好的通過傳遞變量到需要它們

1

你可以讓你的字典上的類靜態字段類。但是靜態字段應謹慎使用,因此將其作爲參數傳遞可能是更好的解決方案。特別是如果你的應用程序隨着時間的推移會變得更大。

2

使其成爲程序類的靜態成員。你沒有表現出任何的代碼,但它聽起來就像你有一個控制檯應用程序,所以它的工作是這樣的:

class Program 
{ 
    static Dictionary<string, string> _myDict; 

    static void Main(string[] args) 
    { 
     // Fill it here 
    } 

    void MyFunc() 
    { 
     // Access it here 
    } 
}