Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не хочет работать функция с возвратом ArrayList 
V
    Опции темы
Elfet
Дата 17.4.2007, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Почему не хочет работать вот эта функция? 
Код

        public ArrayList GetAllItems()
        {
            ArrayList itemArray = new ArrayList();
            foreach (RssChannel channel in this.channels)
            {
                foreach (RssItem item in channel.Items)
                {
                    itemArray.Add(item);
                }
            }
            itemArray.Sort();
            return itemArray;
        }

При вызове её возникает какая-то ошибка  smile

Добавлено @ 15:35
Код

private LinkedList<RssChannel> channels;

...

    public struct RssChannel
    {
        public RssItem[] Items;
    }

...

    public struct RssItem : IComparable
    {
        public DateTime data;

        public int CompareTo(Object rhs)
        {
            RssItem r = (RssItem)rhs;
            return this.data.ToBinary().CompareTo(r.data.ToBinary());
        }
    }



Это сообщение отредактировал(а) Elfet - 17.4.2007, 15:36


--------------------
PM MAIL WWW Skype   Вверх
Wanderer2019
Дата 17.4.2007, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 7
Всего: 17



Какая ошибка? Возникает в run-time или при билде?


PM ICQ MSN   Вверх
Elfet
Дата 17.4.2007, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



В run-time  smile 

user posted image



--------------------
PM MAIL WWW Skype   Вверх
Grub
Дата 17.4.2007, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 27.3.2007

Репутация: нет
Всего: нет



имхо проверь значения на null 
PM MAIL   Вверх
Wanderer2019
Дата 17.4.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 7
Всего: 17



Попробуй пошагово отловить ошибку 

Код

try{}
catch()
{}



PM ICQ MSN   Вверх
Elfet
Дата 17.4.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Гы, она не работает при старте программы только :/ Когда всё пусто она всё равно работает. Только при запуске программы никак не хочет :/

Добавлено через 5 минут и 41 секунду
Вот что мне сказали: Object reference not set to an instance of an object


--------------------
PM MAIL WWW Skype   Вверх
Wanderer2019
Дата 17.4.2007, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 7
Всего: 17



Цитата(Elfet @  17.4.2007,  15:57 Найти цитируемый пост)
Вот что мне сказали: Object reference not set to an instance of an object 

Нутк пошагово отлови Exception... на каком месте вылетает...
PM ICQ MSN   Вверх
QryStaL
Дата 17.4.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Почему бы не запустить ее в режиме дебага в VS ?

Скорее всего у тебя this.channels равняется null
Поставь проверку типа:

Код

        public ArrayList GetAllItems()    
        {    
            ArrayList itemArray = new ArrayList();    
            if (this.channels!=null)
            {
                // ... Здесь твой код
            }    
            return itemArray;    
        }



--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
Elfet
Дата 17.4.2007, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Цитата(QryStaL @  17.4.2007,  17:07 Найти цитируемый пост)
Поставь проверку типа:

foreach всё равано не пропустил бы null. Такая проверка тоже не помогла.

А дебагом не умею ползоваться   smile 

Это сообщение отредактировал(а) Elfet - 17.4.2007, 16:39


--------------------
PM MAIL WWW Skype   Вверх
Wanderer2019
Дата 17.4.2007, 16:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 7
Всего: 17



Цитата(Elfet @  17.4.2007,  16:29 Найти цитируемый пост)
А дебагом не умею ползоваться  smile  


На входе той функции где возникает ошибка ставишь breakpoint (тыкаешь в дизайнере кода слева от самого кода). Далее выставляешь Configuration - Debug (наверху (Release,Debug)). Жмешь F5 =). Все. Далее гонишь по F10 или F11.
PM ICQ MSN   Вверх
mr.DUDA
Дата 17.4.2007, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Elfet @  17.4.2007,  15:29 Найти цитируемый пост)
А дебагом не умею ползоваться

Что, так трудно поставить красный кружок в первой строке функции GetAllItems (тыкнув мышкой в сером поле слева от кода), запустить прогу через F5 и настучать в окне Watch  слово channels ? Ленимся, батенька...  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
QryStaL
Дата 17.4.2007, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Elfet, да, не пропустил бы, и выкинул бы как раз такой Exception  smile 

Я не пойму, почему нельзя сделать Debug и посмотреть в какой строчке вылетает...


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
Elfet
Дата 17.4.2007, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Оказалось вот это вот штука мешает :/ Как такое быть может?
Код

        private StickyWindow stickyWindow;
        public Form1()
        {
            InitializeComponent();

            stickyWindow = new StickyWindow(this);
            stickyWindow.StickOnMove = true;
            stickyWindow.StickOnResize = true;
            stickyWindow.StickToOther = false;
            stickyWindow.StickToScreen = true;



--------------------
PM MAIL WWW Skype   Вверх
mr.DUDA
Дата 17.4.2007, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Elfet, во-первых что за StickyWindow ? Во-вторых, как оно связано с функцией GetAllItems ?


--------------------
user posted image
PM MAIL WWW   Вверх
Elfet
Дата 17.4.2007, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



InitializeComponent() вызывал Draw через событие Resize два раза зачем то smile Поменял их местами и всё наладилось smile Вроде понял как дебагом пользоватся smile
Всем спасибо! smile

Добавлено через 1 минуту и 20 секунд
PS 
Цитата(mr.DUDA @  17.4.2007,  18:01 Найти цитируемый пост)
во-первых что за StickyWindow ?

Классный класс smile Делает форму липучей smile



--------------------
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0583 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.