C # динамически изменяет свойство объекта - PullRequest
1 голос
/ 23 января 2010

Есть ли способ изменить свойство объекта в C # следующим образом.

int Number = 1;

label [Number] .Text = "Test";

И результат изменит label1.Text на «Test»;

Надеюсь, вы понимаете, о чем я.

Ответы [ 4 ]

4 голосов
/ 23 января 2010

Вы можете поместить все метки в массив:

var labels = new[] { label1, label2, label3, label4 };

А затем использовать индексатор массива:

int number = 0;
labels[number].Text = "Test";
3 голосов
/ 23 января 2010

Добавить метки в список

List<Label> list = new List<Label>()
list.Add(label1);
list.Add(label2);

list[0].Text = "Text for label 1";
list[1].Text = "Text for label 2";

Отражение - это другой путь, но, скорее всего, это не то, что вы имели в виду.

0 голосов
/ 29 января 2012

Попробуйте FindControl:

Label lbl = (Label) FindControl("label" + yourVariableHere);
lbl.Text = "Test";

http://msdn.microsoft.com/en-us/library/486wc64h.aspx

0 голосов
/ 23 января 2010

Может быть, словарь (или связанный массив) может помочь вам. Где ключ является целым числом и значением - Метка:

var dictionary = new Dictionary<int, Label>();
dictionary[2] = label1;
dictionary[7] = label2;
dictionary[12] = label2;

int number = 2;
dictionary[number].Text = "Test";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...