2012-08-15 84 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; } }