Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / А как очистить/переинициализировать переменную пользовательского типа? / 10 сообщений из 10, страница 1 из 1
10.09.2012, 02:37
    #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
10.09.2012, 02:47
    #37950373
ЦЦа
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как очистить/переинициализировать переменную пользовательского типа?
Дмитрий77,

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

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

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

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

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

с чего бы? Это же не динамический массив.
...
Рейтинг: 0 / 0
10.09.2012, 15:30
    #37951165
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А как очистить/переинициализировать переменную пользовательского типа?
Упс... милль пардон.
...
Рейтинг: 0 / 0
10.09.2012, 18:40
    #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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / А как очистить/переинициализировать переменную пользовательского типа? / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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