2012-08-15 42 views
0

我正在研究一些C#代碼,其中有幾個文件使用相同的公共變量(現在讓我們稱這些變量爲a,b和c)。免責聲明:請不要在代碼的質量上反省我,我沒有寫出來,這只是我的工作來解決它。這些變量是公開的,並且在所有文件中共享,並且應該是一個數組(a,b和c都做同樣的事情,具有稍微不同的屬性)。我正在修改一大堆文件中的最大文件,以取出對變量的所有引用並將其替換爲數組letters [],但其他文件包含對這些變量的不同引用。有沒有辦法在其他文件中定義某種變量或宏,以便我不必在每個文件中更改每個引用?使用變量引用C#中的數組索引

例如:在最大的文件 「main.cs」,我曾經有過:

public string a; 
    public string b; 
    public string c; 
    a = "a"; 
    b = "b"; 
    c = "c"; 

,但我固定它具有:現在

string[] letters; 
    letters[0] = "a"; 
    //etc 

,在文件中「小。 CS」,我有

a = "hello world"; 
    b = "goodbye world"; 

而不必經過每一個文件的,有沒有什麼辦法,我可能只是具有‘A’被定義爲第一字母元素(letters[0]),b參考letters[1]等?這樣,程序仍然可以運行,並且在小文件中,C#會知道對'a'的任何引用都意味着對letters[0]的引用。

+0

你有沒有嘗試過getters和setter? – 2012-08-15 19:55:13

回答

6

使用屬性:

public string A { get { return letters[0]; } } 
+0

謝謝,那就是我一直在尋找的! – user1552292 2012-08-16 01:22:05

1

從屬性引用它們:

public string a 
{ 
    get 
    { 
      return letters[0]; 
    } 
    set 
    { 
      letters[0] = value; 
    } 
} 
0

,而不是寫

 public string a; 
    public string b; 
    public string c; 
    a = "a"; 
    b = "b"; 
    c = "c"; 

 private List<string> vals = new List<string>{ "a", "b", "c" }; 
    public string a { get { return vals[0]; } set { vals[0] = value; } } 
    public string b { get { return vals[1]; } set { vals[1 = value; } } 
    public string c { get { return vals[2]; } set { vals[2] = value; } }