Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
43 / 11 / 3
Регистрация: 16.12.2008
Сообщений: 107

Передача массива объектов между классами

06.05.2011, 23:20. Показов 3174. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем проблема следующая - есть общий для всех классов ArrayList. Доступ к нему делаю через отдельный статический класс, как один из возможных вариантов, описанных в прикрепленной теме.

C#
1
2
3
4
5
6
static class Data
    {
        public static ArrayList Baza { get; set; }
    }
    // тут идет заполнение arraylist c названием sp
    Data.Baza = sp;
В другом классе (Form2) пишу следующее:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ArrayList _spisok = new ArrayList();        
        public Form2()
        {
            _spisok = Data.Baza;
            InitializeComponent();        
        }
        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < _spisok.Count; i++)
            {
                if (((Contact)_spisok[i]).Area == "smth")
                    textBox3.Text = "smb";
            }
        }
При нажатии button1 вылетает "В экземпляре объекта не задана ссылка на объект." и указывает на строчку
C#
1
i < _spisok.Count
в чем может быть проблема?

Добавлено через 3 часа 58 минут
попробовал, по-моему, все варианты передачи, ни один не работает. во всех такая ошибка вылезает.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.05.2011, 23:20
Ответы с готовыми решениями:

передача параметров между классами
есть форма. У формы есть контролы(элементы управления). Н-р textBox1. И кнопка button1. Также имеется класс , н-р sobakas.cs Я...

Передача данных между классами
Довольно ламерский вопрос, но все таки.. есть 2 класса, один принадлежит форме на которой расположен датагрид, второй пользовательский.....

Передача информации между классами
Доброе время суток, интересует такой вопрос. собственно как передавать информацию между классами, то есть у меня есть Form1 и Class1 ...

6
81 / 81 / 8
Регистрация: 13.01.2010
Сообщений: 304
07.05.2011, 11:04
попробуй работать не с _spisok, а напрямую с Data.Baza. Скорее всего он сам не инициализирован.
0
43 / 11 / 3
Регистрация: 16.12.2008
Сообщений: 107
07.05.2011, 11:52  [ТС]
Цитата Сообщение от ellin Посмотреть сообщение
попробуй работать не с _spisok, а напрямую с Data.Baza. Скорее всего он сам не инициализирован.
Пробовал.
А каким образом мне его инициализировать, если я его как свойство использую?
0
81 / 81 / 8
Регистрация: 13.01.2010
Сообщений: 304
07.05.2011, 13:03
Цитата Сообщение от Napster Посмотреть сообщение
Пробовал.
А каким образом мне его инициализировать, если я его как свойство использую?
Пробовал и с какими результатами то? Присвоить значение элементарно, сам же написал свойства { get; set; }. Если пробовал, неудачно, лучше выложи текст где создаешь список sp.
0
43 / 11 / 3
Регистрация: 16.12.2008
Сообщений: 107
07.05.2011, 13:15  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public partial class MainForm : Form
    {
        Contact cnt;
        public ArrayList sp = new ArrayList();
        public int spcount;
        SearchForm srcfrm = new SearchForm();
        
        public MainForm()
        {
            InitializeComponent();
            cnt = new Contact(<parametres>);
            sp.Add(cnt);
            cnt = new Contact(<parametres>);
            sp.Add(cnt);
            cnt = new Contact(<parametres>);
            sp.Add(cnt);
            cnt = new Contact(<parametres>);
            sp.Add(cnt);
            Data.BaseIn = sp;            
            for (int i = 0; i < Data.BaseIn.Count; i++)
            {
                basetable.Rows.Add();
                basetable[0, i].Value = ((Contact)Data.BaseIn[i]).Name.ToString();
                basetable[1, i].Value = ((Contact)Data.BaseIn[i]).Number.ToString();
            }
        }
    }
}
Вот тут все работает и ничего не ругается.
В другой форме при попытке обращения к Data.BaseIn возникают ошибки
0
81 / 81 / 8
Регистрация: 13.01.2010
Сообщений: 304
07.05.2011, 16:21
Криминала не вижу, если ты так инициализируешь список остается одно - обращение к static классу происходит до инициализации его списка.
Насчет ошибок из других форм - будет ругать за недоступность класса м.б. Сделай его public

C#
1
2
3
4
public static class Data
    {
        public static ArrayList Baza { get; set; }
    }
0
43 / 11 / 3
Регистрация: 16.12.2008
Сообщений: 107
07.05.2011, 22:05  [ТС]
ellin, пробоввл...
ничего так и не помогло
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.05.2011, 22:05
Помогаю со студенческими работами здесь

Передача данных между классами
есть: public partial class Controller_MainForm : Form в котором есть переменные public int cordX, cordY; которые необходимо передать...

Передача объектов между потоками и отображение их в TreeView
Доброго времени суток. Проблема в следующем. Есть поток, который для указанного каталога проводит рекурсивный перебор всех вложенных файлов...

Передача данных между классами - в чем ошибка?
На форуме были несколько похожих тем,но все же не могу понять,в чем конкретно у меня ошибка. Проблема: значение переменной не передается...

Передача объектов между приложениями
Есть ли способ напрямую передать объекты из одного .NET приложения в другое? Объём достаточно большой, поэтому сериализация-десериализация...

Передача массива между классами
Здравствуйте! Вопрос простой, но туплю уже несколько часов. Есть класс MainWindow, в этом классе есть массив arr, который заполняется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru