使用变量来引用C#中的数组索引

时间:2012-08-15 19:52:53

标签: c# arrays variables public

我正在研究一些C#代码,其中我有几个使用相同公共变量的文件(现在让我们调用这些变量a,b和c)。免责声明:请不要责怪我的代码质量,我没有写它,只是我的工作来解决它。这些变量是公共的,并且在所有文件中共享,并且应该是一个数组(a,b和c都做同样的事情,属性略有不同)。我正在修改一堆中最大的文件来取出对变量的所有引用并用数组字母[]替换它们,但是其他文件包含对这些变量的不同引用。有没有办法在其他文件中定义某种变量或宏,以便我不必更改每个文件中的每个引用?

例如:在最大的文件“main.cs”中,我曾经有过:

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

但我修理了它:

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

现在,在文件“small.cs”中,我有

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

有没有什么方法可以将'a'定义为字母的第一个元素(letters[0]),b引用letters[1]等等,而不必遍历每个文件。 ?这样,程序仍然可以运行,在小文件中,C#会知道对'a'的任何引用实际上都意味着对letters[0]的引用。

3 个答案:

答案 0 :(得分:6)

使用属性:

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

答案 1 :(得分:1)

从属性中引用它们:

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

答案 2 :(得分: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; } }