-2

我正在尝试使用这样的东西:

for (int i = 0; i < 40; i++)
{
    string x + i = TextBox + i.Text;
}

有什么解决办法吗?我想i用作索引,就好像我有一个TextBox. 我怎样才能实现这样的文本框的 Text 属性?

例如,我想创建一个名为 x1,x2,x3,x4... 的字符串,x1 = TextBox1.Text 的值。但我不能:(

我有 TextBox1,2,3...40,我只想将它们的文本值传递给新的字符串或字符串列表 ex。比如 x1 = TextBox1.Text,x2 = TextBox2.Text;..... :(

4

2 回答 2

1

你试图Text从一个集合中获取该属性TextBox- 顺便说一下,你还没有向我们展示你是如何得到的。您甚至可能没有TextBox.

如果你这样做,你会使用这样的代码(注意SomeCodeToGetTextBoxArray()需要你自己定义):

TextBox[] myTextBoxes = SomeCodeToGetTextBoxArray();
var arrayLength = myTextBoxes.Length;
String[] x = new String[arrayLength];
for (int i = 0; i < arrayLength; i++)
{
    x[i] = myTextBoxes[i].Text;
}
于 2012-04-06T13:35:55.930 回答
1

您要做的是通过您在运行时生成的字符串名称来引用局部变量、字段或属性。做你想做的事的唯一方法是使用反射。

根据变量是局部作用域、字段成员还是属性成员,有不同的方法可以做到这一点。

反射 - LocalVariableInfo- FieldInfo-PropertyInfo


请注意,虽然这将是您问题的答案,但使用数组(或List<T>)并使用索引可能会更好。但是,如果不完全了解您正在尝试做什么(不仅仅是在您的小片段中),真的不可能知道。但是,数组(或List<T>)更有可能是更正确的解决方案。

于 2012-04-06T13:37:08.370 回答