Страница: 1 |
Вопрос: Структурированные переменные | Добавлено: 01.03.11 23:43 |
Автор вопроса: ![]() |
Доброго времени суток от начинающего програмера.
как-то возникла острая необходимость в чётко структурированных переменных. облазил пол интернета, но что-то ответа на свой вопрос не нашёл. в распоряжении VB2008. вопрос таков- как сделать структурированную переменную. пробовал через класс: Public Class MPC Public Ayd As String Public Vr(100) As String Public Colr(100) As Integer End Class однако возникала проблема, поскольку переменная Dim MasPrClr(4) As MPC = New MPC не могла стать массивом, а работала только как ссылка на класс. пробовал через Enum, отказывается делать массивы внутри себя. пробовал через Structure, отказывается работать с не динамическими векторами, иначе говоря с указанной размерность. а на динамические требует опять "New". в общем, уважаемые спецы, подскажите пожалуйста как же привести в порядок переменные. извините если где не заметил. заранее спасибо. P.S. нутром чую что должно быть простое и красивое описание. надо-то всего-то получить список: "название" и два параллельных вектора. на том же древнем паскале это делается в 2 строчки через рекорд. если не подскажите придётся делать через стринговый массив, а оба вектора сливать в один, на подобии молнии.... но как-то это не красиво... |
Ответы | Всего ответов: 7 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 01.03.11 23:51 |
Для каждого элемента массива нужен новый инстанс класса. В этом суть. New создает один объект.
Dim MasPrClr(4) As MPC, i as long for i=0 to 4 set MasPrClr(i) = New MPC next i |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 1 Ответов: 2 |
Профиль | Цитата | #2 | Добавлено: 01.03.11 23:53 |
Спасибо, за ответ. буду пробовать ![]() |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 1 Ответов: 2 |
Профиль | Цитата | #3 | Добавлено: 02.03.11 00:00 |
огромное спасибо. работает всё на ура.а то уже начал зарываться в документацию...
вопрос немного не в тему, но интересно. почему i для счётчика описали до цикла? мне казалось что в функции цикла удобнее ( For i As Integer = 0 To 4), главное потом нигде не мешается. ещё какой мудрости не знаю? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #4 | Добавлено: 02.03.11 01:46 |
Winand пишет:
i as long В дотнете массивы индексируются integer'ом (32 битное целое знаковое число). С long будет ошибка (при условии если компилировать с включенной жесткой проверкой типов) |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 02.03.11 21:29 |
ninze, нее, это я не знаю мудрости![]() Artyom, Integer 32битный? а long тогда какой? |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 192496851 Вопросов: 75 Ответов: 3178 |
Профиль | Цитата | #6 | Добавлено: 02.03.11 21:35 |
64х битный, конечно же. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 02.03.11 21:41 |
64-х битный. Раста, VB6 запливали еще когда все херачили на 16-битных системах. Поэтому у него Integer - 16-битный. Щас все интегеры 32-битные, лонги 64-битные. Для кошерности можно еще взять Decimal - 96 бит. А Вообще, можно же как-то так (примерно):
Так что все можно. Ставите дополнительно еще 73 миллиарда гигабайт оперативной памяти к себе в комп, и все с радостью заработает, смекнули? |
Страница: 1 |
|