powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / А как очистить/переинициализировать переменную пользовательского типа?
10 сообщений из 10, страница 1 из 1
А как очистить/переинициализировать переменную пользовательского типа?
    #37950370
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public type MyType
  a as long
  b as long
  c as string
  d as boolean
  e as MyOtherType
  ...итд итп
End Type

Dim the_mytype as MyType



Когда эта штука создается, то заполнена дефолтными значениями
the_mytype.a=0
the_mytype.c=""
the_mytype.d=false

А напр. хочу эту переменную использовать в той же процедуре повторно.
Но напр. допускаю вариант, что .a и .c заполнятся, а .b -например нет, тогда в .b будет неправильное значение
Set the_mytype = Nothing не работает, например.
Могу конечно написать ф-цию, где каждый параметр будет обнуляться индивидуально по-своему.
Но не хочу.
Как выкрутиться?
...
Рейтинг: 0 / 0
А как очистить/переинициализировать переменную пользовательского типа?
    #37950373
ЦЦа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий77,

Код: vbnet
1.
2.
3.
4.
Dim the_mytype As MyType
Dim empty_mytype As MyType
...
the_mytype = empty_mytype

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

Эдак проще 2 переменных объявить. В моем случае кстати все элементы заполняются, но вдруг привыкну и забуду.
А класс - ради 3 стрингов и одного лонга, я эти классы и в гораздо более серьезных вещах обхожу стороной.
Я спрашивал про "что-то универсальное" типа Nothing, Empty, vbNull, NULL и т.п.
...
Рейтинг: 0 / 0
А как очистить/переинициализировать переменную пользовательского типа?
    #37950377
ЦЦа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий77,

если только переменную искусственно превратить в массив:
Код: vbnet
1.
2.
3.
4.
5.
'Option Base 0
...
 Dim the_mytype(0) As MyType
...
 Erase the_mytype
...
Рейтинг: 0 / 0
А как очистить/переинициализировать переменную пользовательского типа?
    #37950502
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только лучше не erase, а redim...
...
Рейтинг: 0 / 0
А как очистить/переинициализировать переменную пользовательского типа?
    #37950655
ЦЦа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

это почему?
...
Рейтинг: 0 / 0
А как очистить/переинициализировать переменную пользовательского типа?
    #37950747
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А потому как после erase всё равно redim потребуется...
...
Рейтинг: 0 / 0
А как очистить/переинициализировать переменную пользовательского типа?
    #37950834
ЦЦа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

с чего бы? Это же не динамический массив.
...
Рейтинг: 0 / 0
А как очистить/переинициализировать переменную пользовательского типа?
    #37951165
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс... милль пардон.
...
Рейтинг: 0 / 0
А как очистить/переинициализировать переменную пользовательского типа?
    #37951564
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Могу конечно написать ф-цию, где каждый параметр будет обнуляться индивидуально по-своему

Не надо каждый :)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Function EmptyMyType() As MyType
End Function

'...
Dim the_mytype As MyType
'...
the_mytype = EmptyMyType

Хотя ЦЦа предложил оптимальное решение.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / А как очистить/переинициализировать переменную пользовательского типа?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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