Коллекции

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Коллекции

Сообщение Debugger » 07.05.2010 (Пт) 14:55

Код: Выделить всё
Dim col As Collection
Private Sub Form_Load()
    Set col = New Collection
    col.Add 1, "test"
    Debug.Print col("test")
    col("test") = 2
End Sub

Единичка-то выводится, а на двоечку меняться не хочет.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16489
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Коллекции

Сообщение Хакер » 07.05.2010 (Пт) 15:59

С какой стати должна-то?

Это укороченный вариант, в котором выражение Col("test") подразумевает Col.Item("Test"), где Item — функция по умолчанию.

Так вот, Item — это функция, а не Let-свойство. Если это было бы Let-свойством с параметром, тогда ты бы получил то, что хочешь. А так ты пытаешься присвоить значение возвращённому функцией значению.

Т.е. примерно следующее:
Код: Выделить всё
Function Get777() As Long
    Get777 = 777
End Function

Sub Foo
    Get777() = 123
End Sub
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Коллекции

Сообщение Debugger » 07.05.2010 (Пт) 17:10

Всё, понятно :D
Спасибо!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

    TopList