Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Collection and User Define Types  (Прочитано 7247 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
mixa
Гость
« : 31-10-2003 15:44 » 

Продолжаем осваивать Basic. А они нас обижают.  Я шокирован!
 
Есть у меня такое в Module1:
Код:
Option Explicit

Public Type MyType
    num As Integer
    name As String
End Type

Public MyColl As New Collection

Public Sub MySub()
    Dim MyVar As MyType
  
    MyVar.num = 1
    MyVar.name = "text"
    
    MyColl.Add MyVar
End Sub

На строчке MyColl.Add MyVar ругается каким-то маловразумительным сообщением. Жалко, а ведь так хорошо начиналось. Не надо этих бесконечных массивов с redim-ами.
« Последнее редактирование: 20-11-2007 18:19 от Алексей1153++ » Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #1 : 01-11-2003 08:58 » new

mixa, напиши пожалусто строчку, которой этот негодяй посмел наезжать на тебя.
Записан

Странно всё это....
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #2 : 12-11-2003 12:45 » 

"Объект Collection хранит каждый свой элемент в вариантной переменной. Следовательно, в него можно добавлять тоже, что можно хранить в вариантной переменной. А в ней можно хранить стандартные типы данных, объекты и массивы. ОПРЕДЕЛЯЕМЫЕ ПОЛЬЗОВАТЕЛЕМ типы в вариантных переменных не хранятся."

Если брать конкретный пример, то можно сделать так

Option Explicit

Public Type MyType
    num As Integer
    name As String
End Type

Public MyColl As New Collection

Public Sub MySub()
    Dim MyVar As MyType
   
    MyVar.num = 1
    MyVar.name = "text"
   
    MyColl.Add MyVar.name, CStr(MyVar.num)
End Sub

Надо только следить за уникальностью ключа
Записан

I Have Nine Lives You Have One Only
THINK!
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines