![]() |
|
Модераторы: diadiavova, gambit |
![]()
|
|
| JaguarSmith |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 16.1.2005 Репутация: нет Всего: 1 |
Здрасти!
Столкнулся с такой проблемой - Есть некая коллекция "_all" Когда пытаешься присвоить значение елементу этой коллекции _all.Item(n) = x возникает ашипка ибо оно(item) как выясняется - таки ReadOnly если пытаешься по хитрому _all.Item(n).Property = x.Property - то тоже ашипка из-за позднего связывания... Выкрутился так:
Но своими вторыми 90 чуствую что это не самое элегантное решение... А как лучше? |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 18 Всего: 186 |
А что это за коллекция? Ведь если элемент ReadOnly, наверное это не просто так
|
|||
|
||||
| JaguarSmith |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 16.1.2005 Репутация: нет Всего: 1 |
Не там коллекция из моих обьектов и сами по себе они не могуть быть ReadOnly
Там коллекция параметров для запроса MySQL - Идея в том что сначала создается набор пустых параметров под конкретную таблицу. А потом этот "шаблон" просто заполняется из формы и сбрасывается в таблицу... (ну надоело мне постоянно вспоминать как пишуться запросы, прописывать параметры в ручную и прочая рутина при работе с MySQL и я написал удобный(для меня) класс для работы с ним... =) только вот с частью которая с параметрами работает глюк вышел - я её вслепую сразу в DLLке прописывал... |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 18 Всего: 186 |
Погоди-ка. Что тебе мешает изменить код того класса? Покажи исходник
|
|||
|
||||
| JaguarSmith |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 16.1.2005 Репутация: нет Всего: 1 |
нуу вот както так:
|
|||
|
||||
| Exception |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 18 Всего: 186 |
Страшный у тебя код. Куда делся ООП? Щас буду править...
Добавлено @ 14:19
Что делает этот код??? Почему бы не объявить Property вместо этих ужасных функций? Добавлено @ 14:21 Поставь Option Strict и исправь все ошибки Лады, дай уж я поправлю... Добавлено @ 14:22 Присутствует GetEnumerator, но нету Implements IEnumerable... Добавлено @ 14:26
Не мог бы ты привести пример использования этого? |
||||
|
|||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 18 Всего: 186 |
Короче говоря, код ужасный. Лучше скажи, чего именно ты от него хотел (какие функции нужны), и я тебе его напишу сам
Тебе же проще |
|||
|
||||
| JaguarSmith |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 16.1.2005 Репутация: нет Всего: 1 |
Я жы не волшебник я только учусь...
Ну тут гланое что ужасный код работает(функции позволяют изменять присваивать получать значения обьекта...) - я просто не научился пока думать правильно и делаю всё по старинке как в qbasic Я исправюсь честна!
Я просто тупо передрал все свойства и методы которые нашёл у объекта Collection - для моего кода это вааще не сусчественно я так на всякий случай, я даже не знаю на кой он нужен этот GetEnumerator...
Идея в том что класс должон наследовать классу Collection но Collection - ненаследуемый класс - поэтому я просто эмулирую все методы и свойства Collection Для этого и пришлось создавать коллекцию _all и работать с ней.... Item - просто возвращает элемент коллекции _all соответствующий индексу(Тк в свойсве Item было написано что оно ReadOnly я использовал функцию). Хотя по идее надо исправить add чтобы это работало корректно. |
||||||
|
|||||||
| Exception |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 18 Всего: 186 |
Вот это и корень ффсех бед. Код должен понятно работать, а не просто работать. Иначе его саппорт в дальнейшем становится практически невозможным. Очень советую прочитать "Переход на VB .NET: стратегии, концепции, код" Дэна Эпплмана. Мне в свое время выправил мозги и научил ООП.
Это тоже не нужно делать Он нужен для перебора коллекции вот так:
Для этих целей есть System.Collections.CollectionBase Добавлено @ 14:55 Повторюсь: сформулируй все задачи данного класса и запости |
||||
|
|||||
| JaguarSmith |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 16.1.2005 Репутация: нет Всего: 1 |
Суть простая есть структура - dbParameter - она представляет собой параметр MySQL и на основе коллекции таких параметров(Parameters) строятся запросы к базе данных.
Тк Parameters - коллекция - то она должна уметь делать всё тоже самое что и обычная коллекция плюс есть несколько дополнительных возможностей SetItem(имя, значение) присваивает "значение" элементу и именем "имя" - вообще говоря этоне совсем корректно так как в коллекции может быть несколько элементов с одинаковыми именами но в моём случае важно и допустимо ибо в таблице нет нескольких колонок с одинаковыми именами. GetItem(имя) - возвращает значение елемента с указанным именем. Merge(Коллекция dbParameter) - присоединяет коллекцию к теущей и FromCollection(Коллекция dbParameter) - создает коллекцию из указанной в параметрах. Вот собственно и всё... Это сообщение отредактировал(а) JaguarSmith - 2.2.2006, 15:05 |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 18 Всего: 186 |
На каком VB пишешь? 2003 или 2005?
|
|||
|
||||
| JaguarSmith |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 16.1.2005 Репутация: нет Всего: 1 |
На 2003... Мне его пока хватает и многие его глюки я уже знаю. Хотя мой хостинг(я в основном для веб программирую) и поддерживает сайты на Framework 2.0 я пока не спешу переходить...
А это правда не займёт много твоего времени? - ато я хотел задать простой вопросик а получилось как всегда... 8 ) |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 18 Всего: 186 |
||||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 18 Всего: 186 |
Чего не хватает и что нужно добавить в этот код:
? Это сообщение отредактировал(а) Exception - 2.2.2006, 21:41 |
|||
|
||||
| JaguarSmith |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 178 Регистрация: 16.1.2005 Репутация: нет Всего: 1 |
Вот!
Вспомнил на кой я в dbParameter SetValuse и RetValues сделал функциями:
Чичаза буду тестить и заодно разбираться что такое DictionaryBase и ICollection... я всему учусь сам методом научного тыка и с этим ещё не стыкивался... Баальшое спасибо! Зы. Почимуто когда я нажимаю на кнопку которая Разворачивает прокручиваемый код у мну наглухо виснет ИЕ наверно вирус подцепил гдето... |
|||
|
||||
![]()
|
| Правила форума VB .NET | |
|
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |