返回变量值,而变量名是字符串

问题描述 投票:0回答:1

我有一个双变量名和一个声明如下的字符串:

public double dblvar = 0;
public string str = "dblvar";

我想做的是通过使用变量

0
返回
str

有一些关于如何将字符串解析为双精度型,或者如何从字符串声明新变量名的指南,但这不是我想要的。

我尝试过但工作不太正常但可能很接近的是:

double test = (double)this.GetType().GetField("dblvar").GetValue(this);

但即使这接近解决方案,它也要求我事先知道它是一个

double
。虽然在我的示例中它实际上是
double
,但我使用的其他变量可以是
int

有什么建议吗?我什至不确定这是否可能。

问候,

编辑:

很多人评论询问我正在尝试做什么的详细信息。 我想做的正是那里的事情,它是一个公共变量,没有嵌入到不同的类中,这不是 XY 问题,我想做的正是所描述的,而且我不想用一个字典,这将涉及更新我已有的数百个变量。 我想知道这是否可能以某种方式实现,正如所描述的那样。

c# parsing variables
1个回答
0
投票

我整理的代码实际上正在一个新项目中运行。谢谢各位的回复。

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());
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.