是否可以在变量名的名称中使用变量号?

时间:2013-06-17 09:15:00

标签: c# wpf variables

(使用WPF) 是否可以使用TextBox的数字来选择参数名称? 例如,用户可以在TextBox

中添加0,1,2或3作为文本
private void button1_Click(object sender, RoutedEventArgs e)
{
    int test = int.Parse(textBox1.Text);

    string nr1 = "this string is 1";
    string nr2 = "this string is 2";
    string nr3 = "this string is 3";

    MessageBox.Show();
}

现在MessageBox.Show();希望将某些内容设为nr(test) 这样的事情会成为可能吗?

5 个答案:

答案 0 :(得分:5)

为什么不使用Dictionary

var dict = new Dictionary<int,string>();
dict.Add(1,"String Number 1");
dict.Add(2,"String Number 2");
dict.Add(3,"String Number 3");

int test = int.Parse(textBox1.Text);
MessageBox.Show(dict[test]);

答案 1 :(得分:1)

我认为这会对你有所帮助:

private void button1_Click(object sender, RoutedEventArgs e)
        {
            int test = int.Parse(textBox1.Text);

            string[] nr = new string[3]{"this string is 1","this string is 2","this string is 3"};
            MessageBox.Show(nr[test-1]);
        }

答案 2 :(得分:1)

您可以使用按键创建包含所有数据的Dictionary<int,string>

MessageBox.Show(myDict[test])

在这里,您可以看到MSDN Documentation

答案 3 :(得分:1)

您也可以使用FindName()

让我们建议:

XAML

<StackPanel>
    <TextBox Height="23" Name="textBox1" Width="120" />
    <TextBox Height="23" Name="textBox2" Width="120" />
    <TextBox Height="23"  Name="textBox3" Width="120" />
    <Button Content="Button" Height="23"  Width="75" Click="button1_Click" />
</StackPanel>

你的看起来像这样

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        int number =2;
        TextBox tb = this.FindName(string.Format("textBox{0}", number)) as TextBox;

        MessageBox.Show(tb.Text);
    }

答案 4 :(得分:0)

我建议你使用字典。处理字典简化了您的生活。我建议看here