C#を使用して、名前が別の文字列変数に格納されている変数のコンテンツにアクセスできますか?
例えば。
string str ="ABCDEFG";
string variable = "str";
ここで、varを使用して文字列strの値にアクセスできますか????
C#を使用して、名前が別の文字列変数に格納されている変数のコンテンツにアクセスできますか?
例えば。
string str ="ABCDEFG";
string variable = "str";
ここで、varを使用して文字列strの値にアクセスできますか????
おそらく可能ですが、それは複雑すぎます。Dictionaryクラスを使用することを考えましたか?
Dictionary<string,string> myDictionary = new Dictionary<string,string>();
myDictionary["str"] = "ABCDEF";
var valueinstr = myDictionary["str"];
はい、リフレクションを使用することで可能です。
var fieldInfo = this.GetType().GetField(var);
string theValue = (string) fieldInfo.GetValue(this);
サンプルvar
にはキーワードがあるため、変数の名前として使用できないことに注意してください。
リフレクションアプローチでは、プロパティを説明するオブジェクトを取得し、それを使用してクラスの特定のインスタンスから値を取得します。プロパティが公開されていない場合は、 PropertyInfoを取得するときに正しいBindingFlagsを指定する必要があります。例のように変数を使用している場合は、FieldInfoオブジェクトを取得する必要があります(別の例)。