按名称获取元素

时间:2019-06-23 10:35:30

标签: c#

我正在尝试使某些东西循环3次并更改名称为“ label1”,“ label2”和“ label3”的3个元素的.text属性。我正在尝试将1,2,3添加到标签上,但无法正常工作。

这就是我想要做的: y是1,2或3

("label" + y).Text

2 个答案:

答案 0 :(得分:1)

我想你想要这个,所以我做了一个简单的代码。

for(int i = 1; i <= 3; i++)
{
    Console.WriteLine("label" + i);
}

答案 1 :(得分:1)

如果我正确理解-您可以使用反射来做到这一点:

var temp = (double)typeof(MyClass).GetProperty("label" + y).GetValue(myClassInstance);

如果您将MyClass的类型更改为保存变量的类,将myClassInstance更改为该类的实例,并且将类型从double转换为您的字段类型(我猜这是一些的WPF / Winforms控件),您可以按名称获取变量。

重要的是要注意,如果经常使用它,您的程序将会变慢。