0

こんにちは、テキストのようないくつかの変数にアクセスする方法を考えていました。下

string variable1;
string variable2;
methodName(int variablenum){
   //Let's say the int is 1
   //How can I access variable1?
   //Sth like variable+"variablenum"
}

編集:変数がvariableAvariableBの場合、どうすればそれらにアクセスできますか?

4

2 に答える 2

5

リフレクションの使用:

public class Program
{
    public static void Main(string[] args)
    {
        Test test = new Test();
        test.MethodName(1);
    }
}

public class Test
{
    private string variable1 = "1";
    private string variable2 = "2";

    public void MethodName(int variablenum)
    {
        // .Instance because not static, .NonPublic because private
        const BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic;
        FieldInfo field = GetType().GetField("variable" + variablenum, flags);
        string s = (string)field.GetValue(this);          
    }
}
于 2013-07-18T16:06:18.903 に答える
1

おそらく、配列はあなたが望むものを提供しますが、範囲外のエラーが発生する可能性があることに注意してください:

string [] variables = { "foo", "bar", "baz" }
string methodName( int variableIndex )
{
    return variables[ variableIndex ]; // bad if variable > 2
}
于 2013-07-18T16:11:39.417 に答える