将变量名称动态设置为文本框的名称
Setting Name of Variable to that of a Textbox Dynamically
我目前正在做一个项目,我创建了一个自定义计算器来保存您自己的公式。
有数字上下元素,允许用户在计算器中设置一定数量的变量。列出他们使用的变量后,他们输入问题并将结果显示在输出文本框中。
我希望它的工作方式是每个文本框都有一个变量。我希望变量的名称动态更改为文本框中的文本。
在用户输入的问题中设置为由计算机求解的字符串。
例如
var unnamedVarForTextbox1;
//pseudo code
unnamedVarForTextbox1.name = textbox1.Text; //let's say var1 is l for length (user input)
unnamedVarForTextbox2.name = textbox2.Text; //let's say var2 is w for width (user input)
unnamedVarForTextbox3.name = textbox3.Text; //let's say var3 is h for height (user input)
string userProblem = problem.Text;
//problem.Text is l*w*h (so volume)
//Displays solved problem in output textbox
output.text = userProblem;
我该怎么做?如果有其他方法可以实现我的目标,或者您需要任何照片,请告诉我,在此先感谢您。
以下是一些稍微相关的网站:
和
Is it possible to dynamically name variables based off user input?
首先,你不能这样做;编译时需要知道变量和控件名称。但是,您可以使用字典或类似的东西,您可以在编译时或运行时创建键和值,并在运行时查询它们。
完整的人为示例:
private Dictionary<string,string _store = new Dictionary<string,string();
...
_store.Add(textbox1.Text,someValue);
...
if(_store.TryGetValue(textbox1.Text,out var someValue)
Debug.WriteLine(someValue);
我目前正在做一个项目,我创建了一个自定义计算器来保存您自己的公式。
有数字上下元素,允许用户在计算器中设置一定数量的变量。列出他们使用的变量后,他们输入问题并将结果显示在输出文本框中。
我希望它的工作方式是每个文本框都有一个变量。我希望变量的名称动态更改为文本框中的文本。
在用户输入的问题中设置为由计算机求解的字符串。
例如
var unnamedVarForTextbox1;
//pseudo code
unnamedVarForTextbox1.name = textbox1.Text; //let's say var1 is l for length (user input)
unnamedVarForTextbox2.name = textbox2.Text; //let's say var2 is w for width (user input)
unnamedVarForTextbox3.name = textbox3.Text; //let's say var3 is h for height (user input)
string userProblem = problem.Text;
//problem.Text is l*w*h (so volume)
//Displays solved problem in output textbox
output.text = userProblem;
我该怎么做?如果有其他方法可以实现我的目标,或者您需要任何照片,请告诉我,在此先感谢您。
以下是一些稍微相关的网站:
首先,你不能这样做;编译时需要知道变量和控件名称。但是,您可以使用字典或类似的东西,您可以在编译时或运行时创建键和值,并在运行时查询它们。
完整的人为示例:
private Dictionary<string,string _store = new Dictionary<string,string();
...
_store.Add(textbox1.Text,someValue);
...
if(_store.TryGetValue(textbox1.Text,out var someValue)
Debug.WriteLine(someValue);