Лучший отвечающий
Использование св-ва Tag

Вопрос
-
Объясните пожалуйста, назначение и правильное использование свойства Tag которое есть в каждом контроле.
MSDN пишет: Получает или задает объект, содержащий данные элемента управления.
Вот я к примеру использую код
label.Text = label.Text + ((Button)sender).Text;
А мне говорят, что вместо св-ва Text лучше использовать Tag, т.к. Text - не совсем корректно.
Т.е. можно переписать код так ?
label.Tag= label.Tag + ((Button)sender).Tag;
Объясните пожалуйста.
2 апреля 2013 г. 6:00
Ответы
-
А мне говорят, что вместо св-ва Text лучше использовать Tag, т.к. Text - не совсем корректно.
Кто говорит? Это глупость как по мне.
Tag имеет тип Object и обычно используется как свойство для чего угодно. Трудно объяснить без примера, поэтому пример на скорую руку:
У вас есть сто сотрудников, вы хотите вывести их всех на форме. В вашей базе данных эти сотрудники имеют номера. Вы в коде создаете 100 Label'ов и в свойство Text пишите их ФИО. Выодите на форму. Потом я нажимаю на любое ФИО и хочу увидеть адрес. Вам придется проходить по базе искать совпадение по ФИО и выводить адрес. А можно в Tag лейбла поместить номер сотрудника в базе и по нажатию смотреть номер из Tag и быстро находить в базе. Надеюсь данный чем то глуповатый пример помог понять зачем нужен Tag
Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!
- Предложено в качестве ответа Brash_O 2 апреля 2013 г. 17:44
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 4 апреля 2013 г. 8:32
2 апреля 2013 г. 6:13Отвечающий -
Свойство это "специальная ячейка" экземпляра класса для хранения произвольных данных. Tag имеет тип Object и значит ему можно присвоить значения любого типа (простого - числа или сложного - массива).
Label.Tag=0; Label.Tag=Label.Tag+12; Label.Tag+=110;
- Предложено в качестве ответа prmchnk 4 апреля 2013 г. 3:54
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 4 апреля 2013 г. 8:32
4 апреля 2013 г. 3:54
Все ответы
-
А мне говорят, что вместо св-ва Text лучше использовать Tag, т.к. Text - не совсем корректно.
Кто говорит? Это глупость как по мне.
Tag имеет тип Object и обычно используется как свойство для чего угодно. Трудно объяснить без примера, поэтому пример на скорую руку:
У вас есть сто сотрудников, вы хотите вывести их всех на форме. В вашей базе данных эти сотрудники имеют номера. Вы в коде создаете 100 Label'ов и в свойство Text пишите их ФИО. Выодите на форму. Потом я нажимаю на любое ФИО и хочу увидеть адрес. Вам придется проходить по базе искать совпадение по ФИО и выводить адрес. А можно в Tag лейбла поместить номер сотрудника в базе и по нажатию смотреть номер из Tag и быстро находить в базе. Надеюсь данный чем то глуповатый пример помог понять зачем нужен Tag
Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!
- Предложено в качестве ответа Brash_O 2 апреля 2013 г. 17:44
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 4 апреля 2013 г. 8:32
2 апреля 2013 г. 6:13Отвечающий -
Свойство это "специальная ячейка" экземпляра класса для хранения произвольных данных. Tag имеет тип Object и значит ему можно присвоить значения любого типа (простого - числа или сложного - массива).
Label.Tag=0; Label.Tag=Label.Tag+12; Label.Tag+=110;
- Предложено в качестве ответа prmchnk 4 апреля 2013 г. 3:54
- Помечено в качестве ответа Maksim MarinovMicrosoft contingent staff, Moderator 4 апреля 2013 г. 8:32
4 апреля 2013 г. 3:54 -
Спасибо!
Т.е. я могу написать:
Label.Tag=String.Empty; Label.Tag=Label.Tag+"SomeText"; Label.Tag+="SomeText";
и собственно возвращаясь к вопросу...
Label.Text = "Some String" or Label.Tag = "Some String"
Одной из причин, использования Tag вижу, например, если поменяется локализация приложения, то в Label.Text, может оказаться вместо Label.Text = "Some String" -> Label.Text = "Некоторая строка" или Label.Text = "Деяка строка" итд.
- Изменено Andrey Langovoy 5 апреля 2013 г. 5:04
5 апреля 2013 г. 4:54