C#中如何将一个字符串转化为变量,这个变量是已经定义的。

2025-05-13 01:29:16
推荐回答(5个)
回答1:

直接使用字符串作为变量名是不可行的。你可以使用if,或者switch代码块。

if(str=="a5“)
{
system.console.writeline(a5);
}
else if(str=="a4")
{
system.console.writeline(a4);
}

例如这样。

回答2:

double a1 = 0;
double a2 = 0;
double a3 = 0;
double a4 = 0;
double a5 = 0;
private void button2_Click(object sender, EventArgs e)
{
setFValue("a1",1);//操作变量a1
setFValue("a2",2.22);//操作变量a2
setFValue("a3",333.44);//操作变量a3
}
public void setFValue(string Fname,double value)
{
Type type = this.GetType();
FieldInfo property = type.GetField(Fname, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
property.SetValue(this,value);
}

注:引用 using System.Reflection;

回答3:

switch (str)
{
case"a1": 用a1操作;break
case"a2": 用a2操作;break
case"a3": 用a3操作;break
case"a4": 用a4操作;break
derfault:用默认值操作;break;
}

回答4:

这是不可以的,不像javascript那样可以用eval来计算一个表达式,如果你想要这样的效果,可以将其定义为数组,然后传入下标来获得某个值,或者就用switch...case语句。

回答5:

double a1 = 0;
double a2 = 0;
double a3 = 0;
double a4 = 0;
double a5 = 0;
if(str==a5)
{
//操作语句

}
else if(str==a4)
{
//操作语句
}