我有一个双变量名和一个声明如下的字符串:
public double dblvar = 0;
public string str = "dblvar";
我想做的是通过使用变量
0
返回
str
有一些关于如何将字符串解析为双精度型,或者如何从字符串声明新变量名的指南,但这不是我想要的。
我尝试过但工作不太正常但可能很接近的是:
double test = (double)this.GetType().GetField("dblvar").GetValue(this);
但即使这接近解决方案,它也要求我事先知道它是一个
double
。虽然在我的示例中它实际上是 double
,但我使用的其他变量可以是 int
。
有什么建议吗?我什至不确定这是否可能。
问候,
编辑:
很多人评论询问我正在尝试做什么的详细信息。 我想做的正是那里的事情,它是一个公共变量,没有嵌入到不同的类中,这不是 XY 问题,我想做的正是所描述的,而且我不想用一个字典,这将涉及更新我已有的数百个变量。 我想知道这是否可能以某种方式实现,正如所描述的那样。
我整理的代码实际上正在一个新项目中运行。谢谢各位的回复。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public double dblvar = 3;
public string str = "dblvar";
public Form1()
{
InitializeComponent();
MessageBox.Show(dblvar.ToString() + " " + str);
double test = (double)this.GetType().GetField("dblvar").GetValue(this);
MessageBox.Show(test.ToString());
}
}
}