Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для sergeydeleu
20 / 9 / 4
Регистрация: 22.01.2015
Сообщений: 186

Передача массива из одной формы в другую - inconsistent accessibility

01.11.2022, 11:25. Показов 504. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

Нужно передать массив из одной формы в другую.
Код второй формы:

C#
1
2
3
4
5
6
        private DataBank.barInfo[] arr;
        public CForm24(DataBank.barInfo[] _arr)
        {
            arr = _arr;
            InitializeComponent();
        }


Почему возникает такая ошибка? Как можно исправить?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.11.2022, 11:25
Ответы с готовыми решениями:

Передача массива с одной формы в другую
Здравствуйте, а не подскажете как передать массив данных из одной формы VB в другую : например мне нужно передать массив а(120,6) из...

Передача массива из одной формы документа в другую
Здравствуйте! Подскажите, пожалуйста, как из одной формы документа передать массив значений в другую форма? В документе есть две...

Error Inconsistent accessibility
public delegate void ProgressInitHandler(object sender, ProgressInitArgs e); Error 1 Inconsistent accessibility: parameter type...

8
 Аватар для Павлик Морозов
138 / 137 / 42
Регистрация: 26.10.2012
Сообщений: 443
01.11.2022, 11:31
sergeydeleu, потому что уровень доступа неподходящий. В ошибке указано, что DataBank.barInfo[] имеет уровень доступа меньше, чем конструктор, который его использует, т.е. не public. Исправьте модификатор доступа и будет вам счастье.
1
 Аватар для sergeydeleu
20 / 9 / 4
Регистрация: 22.01.2015
Сообщений: 186
01.11.2022, 12:16  [ТС]
Добавил модификатор доступа в описание класса - ошибка изчезла!



Сейчас проверю работу массива...
0
 Аватар для sergeydeleu
20 / 9 / 4
Регистрация: 22.01.2015
Сообщений: 186
01.11.2022, 13:41  [ТС]
Не получается записать данные в массив:

C#
1
2
3
4
5
6
7
arr = new DataBank.barInfo[bars];
                
 
                for (int i = 0; i < bars; i++)
                {
 
                    arr[i].date.day = 1; // строка 70
Возникает такая ошибка:

************** Текст исключения **************
System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в CandleAnalyzerForm2.CForm2.<readStructAr ray_Click>d__4.MoveNext() в D:\Programming\FinishedProjects\CS\Candl eAnalyzer2\CandleAnalyzer2\CandleAnalyze rForm2\Form1.cs:строка 70
Добавлено через 33 минуты
Это массив классов:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
    public static class DataBank
    {
 
       public class barInfo
        {
            public class dateStruct
            {
                public int year, mon, day, hour, min, sec, day_of_week, day_of_year;
            };
 
            public dateStruct date;
            public double open, high, low, close;
        };
Как я понимаю: надо как-то инициализировать массив. Но, не знаю как это правильно сделать?..
0
 Аватар для sergeydeleu
20 / 9 / 4
Регистрация: 22.01.2015
Сообщений: 186
01.11.2022, 13:59  [ТС]
Название: Screenshot_4.png
Просмотров: 33

Размер: 3.0 Кб

Как сделать, чтобы объект не указывал на NULL?
0
 Аватар для Павлик Морозов
138 / 137 / 42
Регистрация: 26.10.2012
Сообщений: 443
01.11.2022, 16:57
Лучший ответ Сообщение было отмечено sergeydeleu как решение

Решение

sergeydeleu, проинициализируйте сначала объект. Потом обращайтесь к нему уже.
C#
1
2
arr[i].date = new dateStruct();
arr[i].date.day = 1;
Зачем городить этот колхоз из классов? И чем вас не устраивает тип DateTime, в котором всё уже есть?
1
 Аватар для sergeydeleu
20 / 9 / 4
Регистрация: 22.01.2015
Сообщений: 186
01.11.2022, 20:20  [ТС]
Вот так проинициализировал и все заработало!

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 arr[i].date = new DataBank.barInfo.dateStruct();
                    arr[i].date.day = 1; // 70
 
 
                    arr[i].date.year = reader.ReadInt32();
                    arr[i].date.mon = reader.ReadInt32();
                    arr[i].date.day = reader.ReadInt32();
                    arr[i].date.hour = reader.ReadInt32();
                    arr[i].date.min = reader.ReadInt32();
                    arr[i].date.sec = reader.ReadInt32();
                    arr[i].date.day_of_week = reader.ReadInt32();
                    arr[i].date.day_of_year = reader.ReadInt32();
 
                    arr[i].open = reader.ReadDouble();
                    arr[i].high = reader.ReadDouble();
                    arr[i].low = reader.ReadDouble();
                    arr[i].close = reader.ReadDouble();

Получается, что только arr[i].date надо инициализировать?

C#
1
2
3
4
                    arr[i].open = reader.ReadDouble();
                    arr[i].high = reader.ReadDouble();
                    arr[i].low = reader.ReadDouble();
                    arr[i].close = reader.ReadDouble();
Эти элементы не надо?..

Добавлено через 3 минуты
Цитата Сообщение от Павлик Морозов Посмотреть сообщение
И чем вас не устраивает тип DateTime, в котором всё уже есть?
Сейчас посмотрю...

Добавлено через 9 минут
Цитата Сообщение от Павлик Морозов Посмотреть сообщение
И чем вас не устраивает тип DateTime, в котором всё уже есть?
Я считываю эти данные из файла, котрый создан в другой программе, на другом языке. Не знаю, если получится здесь использовать DateTime?..
0
 Аватар для Павлик Морозов
138 / 137 / 42
Регистрация: 26.10.2012
Сообщений: 443
01.11.2022, 20:41
Цитата Сообщение от sergeydeleu Посмотреть сообщение
Я считываю эти данные из файла, котрый создан в другой программе, на другом языке. Не знаю, если получится здесь использовать DateTime?..
в типе DateTime есть конструктор, принимающий все необходимые параметры:
C#
1
public DateTime(int year, int month, int day, int hour, int minute, int second)
смело передавайте ему все параметры, а день недели и порядковый номер дня в году автоматически посчитает.
Здесь можно почитать детальнее про этот тип.

Цитата Сообщение от sergeydeleu Посмотреть сообщение
Эти элементы не надо?..
Инициализировать надо ссылочные типы, т.е. классы. Примитивы инициализировать не надо, т.к. они являются типами значения.
1
 Аватар для sergeydeleu
20 / 9 / 4
Регистрация: 22.01.2015
Сообщений: 186
01.11.2022, 21:20  [ТС]
Павлик Морозов, Уже разобрался, переделал на DateTime. Все работает!

Заодно разобрался с типом DateTime, пока решал эту задачу. До этого не до конца понимал эту тему.

Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2022, 21:20
Помогаю со студенческими работами здесь

Error Inconsistent accessibility: parameter ...is less accessible than method ...
Есть 3 класса. Первые 2 реализуют 1 интерфеис. Третии клас - тестирует работу первых двух. Хочу передать в метод класса Тест интерфейс как...

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

Ошибка компиляции CS0051: Inconsistent accessibility: parameter type is less accessible than method
Моя задача, заполнить List&lt;type&gt; в методе. Делаю так: public class Human { public int Id; public string...

Передача данных из одной формы в другую - ошибка в параметрах при открытии второй формы из первой
Здравствуйте! Имеется проект Windows Forms в среде CLR. Есть основная форма MainForm. По нажатию в ней кнопки input_addblock должна...

Передача из одной формы в другую
Всем привет! У меня есть две формы, в каждой форме есть одномерный массив текстбоксов. Собственно, как передать текст из одного массива...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru