Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
3 / 3 / 0
Регистрация: 17.07.2012
Сообщений: 34
1

Определение динамического массива в классе

04.03.2020, 18:04. Показов 1730. Ответов 7
Метки нет (Все метки)

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

Очевидно очень глупый вопрос, сложно даже сформулировать.

Необходимо в классе определить массив, размер которого будет получен в методе.

C#
1
2
3
4
5
6
7
8
9
 class GetInformation
        {
            
Вот тут нужно определить массив [x][y]
            public void GetInfo()
            {
значения x и y будут получены только в методе
}
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2020, 18:04
Ответы с готовыми решениями:

Создание динамического массива в классе
помогите пожалуйста написать задачу используя конструктор и деструктор(надо создать динамический...

Ввод динамического массива в классе
Не вводятся элементы массива. Как только ввожу второй элемент, пишет что Программа прервана. С...

Удаление динамического массива в классе
при удаление динамического массива в классе зависает программа... хотя в инете нашел кучу примеров,...

Создание динамического массива в классе
Помогите, пожалуйста, разобраться . Пыталась реализовать ввод и вывод элементов динамического...

7
1842 / 1184 / 501
Регистрация: 14.10.2018
Сообщений: 3,180
04.03.2020, 18:11 2
Цитата Сообщение от Bartman Посмотреть сообщение
значения x и y будут получены только в методе
я так понимаю при каждом вызове метода может получиться разный массив. Если это так, то каждый раз создавать новый массив, что есть очень затратно + массив как я понимаю заполнен числами не будет, то бишь все значения равны нулю.
Можно узнать откуда берутся значения x и y?
1
3 / 3 / 0
Регистрация: 17.07.2012
Сообщений: 34
04.03.2020, 18:16  [ТС] 3
Конечно.

Количество строк массива - это количество строк в считываемом файле excel.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 class GetInformation
        {
            static int punch_last_position;
            string[,] PunchArr = new string[punch_last_position, 4];
 
            public void GetInfo()
            {
                punch_last_position = xlSht.Cells[xlSht.Rows.Count, "A"].End[Excel.XlDirection.xlUp].Row; //считывается количество строк из экселя
 
                PunchArr[0, 0] = "ff"; // тут все хорошо
                PunchArr[0, 1] = "DD"; // вот тут ошибка "индекс за пределами диапазона"
}
}
0
3560 / 2501 / 1174
Регистрация: 14.08.2016
Сообщений: 8,206
04.03.2020, 18:35 4
Лучший ответ Сообщение было отмечено Bartman как решение

Решение

Цитата Сообщение от Bartman Посмотреть сообщение
static int punch_last_position;
почему статик?
4я строка
C#
1
string[,] PunchArr;
9z строка
C#
1
PunchArr = new string[punch_last_position, 4];
1
3 / 3 / 0
Регистрация: 17.07.2012
Сообщений: 34
04.03.2020, 19:00  [ТС] 5
Вы чертов гений, спасибо!!

Добавлено через 20 минут
Цитата Сообщение от Diamante Посмотреть сообщение
почему статик?
4я строка
C#
1
string[,] PunchArr;
9z строка
C#
1
PunchArr = new string[punch_last_position, 4];
Прошу прощения, на волне успеха задам еще один вопрос.

Как мне потом обратиться к этому массиву из другого класса (обработчика кнопки)?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class GetInformation
        {
            static int punch_last_position;
            string[,] PunchArr;
 
 
            public void GetInfo()
            {
                punch_last_position = xlSht.Cells[xlSht.Rows.Count, "A"].End[Excel.XlDirection.xlUp].Row; //считывается количество строк из экселя
 
                PunchArr = new string[punch_last_position, 4];
 
                PunchArr[0, 0] = "ff"; 
                PunchArr[0, 1] = "DD"; 
}
}
 
private void Analys_Click(object sender, EventArgs e)
        {
             GetInformation str = new GetInformation(); 
             MessageBox.Show(str.PunchArr[0,0].ToString()); //ошибка вот тут
            
        }
Стандартная ошибка: System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
0
1842 / 1184 / 501
Регистрация: 14.10.2018
Сообщений: 3,180
04.03.2020, 19:02 6
Bartman, а спорим у вас таже самая ошибка, что вначале.
0
3 / 3 / 0
Регистрация: 17.07.2012
Сообщений: 34
04.03.2020, 19:04  [ТС] 7
Как минимум, массивы заполняются, но не могу к ним обратиться из обработчика другой кнопки. Вы что-то знаете
0
1842 / 1184 / 501
Регистрация: 14.10.2018
Сообщений: 3,180
04.03.2020, 19:14 8
Bartman, а не, я ошибся, код верный. надо перерыв делать.
Цитата Сообщение от Bartman Посмотреть сообщение
но не могу к ним обратиться из обработчика другой кнопки
между 20 и 21 строкой вызовите метод GetInfo(), без данного метода массив еще не создан. И возможно модификатора доступа public для string[,] PunchArr; не хватает.
0
04.03.2020, 19:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2020, 19:14
Помогаю со студенческими работами здесь

Изменение размера динамического массива в классе
Здравствуйте, каким образом можно изменить размер массива, находящегося в классе? Class poli Dim...

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

Обьявление и инициализация динамического двумерного массива в классе
Пытаюсь создать в классе динамический двумерный массив, не могу понять что я делаю не так( При...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru