powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Хранение структуры в tag, допустимы ли вольности?
7 сообщений из 7, страница 1 из 1
Хранение структуры в tag, допустимы ли вольности?
    #39531218
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. например

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
  <StructLayout(LayoutKind.Sequential)>
  Public Structure MyType
    Dim m_param1 As Boolean
    Dim m_param2 As Boolean
    Dim m_param3 As Integer
    Dim m_param3 As String
  End Structure

'Сохраняю:
    Dim oMyType As New MyType
    With oMyType
      .m_param1 = True
...
    End With
    <Control>.Tag = oMyType

'Извлекаю
    Dim oMyType As MyType = <Control>.Tag
...



Т.е. тупого присваивания туда-сюда без всяких CType, Convert, TryCast, DirectCast и им подобных и каких-то там проверок достаточно?
При условии что мой алгоритм жестко контролирует, что в .Tag не пусто и не object другого типа,
т.е де-факто (логикой кода) не может быть ситуации что у меня при извлечении в .Tag сидит не MyType а какой-нибудь String.
...
Рейтинг: 0 / 0
Хранение структуры в tag, допустимы ли вольности?
    #39531226
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что смущает?

Boxing произойдёт, структура скопируется
...
Рейтинг: 0 / 0
Хранение структуры в tag, допустимы ли вольности?
    #39531243
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

Да в общем-то ничего особо не смущает. На всякий случай спросил, раньше использовал только для хранения String.
В VB6 Tag это вроде как строго String, а не Object, поэтому исторически по-другому не использовал.

Visual Studio 6.0 Tag Property
expressionA string expression identifying the object. The default is a zero-length string ("").

Но судя по ответу и по первым тестам вроде все в порядке.

Т.е. есть набор "настроек-правил".
Хранятся в реестре, промежуточно отображаются в ListView-таблица.
Каждый итем - отдельное правило, каждый сабитем - свойство (или набор свойств).
Щелкнул по итем - редактируем правило в UserForm(GUI)
Смысл, что я обычно хранил свойства в subitems в .Text, вроде и удобно (пользователь все видит в таблице), и типа задача промежуточного хранения решается.
Но пошли такие "свойства", например шаблон текста, либо набор из нескольких свойств, что нормально в .Text не впихнешь, те же переносы строк например (замучаешься парсить туда-сюда, да и не будет это там никто разглядывать), поэтому разумно отображать в subitem.Text что-то простое типа слово default/custom, а данные хранить в subitem.Tag, откуда их уже брать при отображении в UserForm или обратно при сохранении в реестр.
...
Рейтинг: 0 / 0
Хранение структуры в tag, допустимы ли вольности?
    #39531245
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,

А зачем структура в данном случае, класс используй
...
Рейтинг: 0 / 0
Хранение структуры в tag, допустимы ли вольности?
    #39531252
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилА зачем структура в данном случае, класс используй
А какая разница?

"Классы" со времен VB6 почему-то недолюбливаю, хотя какое-то их к-во у меня в явном виде таки есть.
Т.е. привык оперировать понятиями Module, Form, Function/Sub, Structure(Type в VB6)
Так уж привык...
...
Рейтинг: 0 / 0
Хранение структуры в tag, допустимы ли вольности?
    #39531270
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отвыкай от vb6
Хотя если по граблям попрыгать есть желание - вперёд!
...
Рейтинг: 0 / 0
Хранение структуры в tag, допустимы ли вольности?
    #39531274
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
привычка великое дело, меня уже вряд ли исправишь.
Надо было на C# сразу переходить, а не на VB.Net.
VB.Net оно как бы с некоторыми парой-тройкой трюков позволяет писать "также как на VB6", C# насколько я понимаю многих аля VB6 штук делать не позволяет.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Хранение структуры в tag, допустимы ли вольности?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]