Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.97/30: Рейтинг темы: голосов - 30, средняя оценка - 4.97
 Аватар для dimakozyr
383 / 30 / 3
Регистрация: 17.08.2013
Сообщений: 560

Как передать двумерный массив в другой класс

08.02.2014, 00:59. Показов 6730. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть двумерный массив:
C#
1
2
    private bool[ , ] aUniverse = new bool[(int)UNIVERSE_SIZE.HEIGTH, (int)UNIVERSE_SIZE.WIDTH];
    private enum UNIVERSE_SIZE { HEIGTH = 10, WIDTH = 10 }
А так-же Get для переменных массива:
C#
1
2
3
4
5
public int GUniverseSizeHeigth
        { get { return (int)UNIVERSE_SIZE.HEIGTH; } }
 
public int GUniverseSizeWidth
        { get { return (int)UNIVERSE_SIZE.WIDTH; } }
Как мне передать сам массив в другой класс?
И правильно-ли это - передавать массив?

Вопрос вдогонку, как мне сделать, чтоб при использовании перечислений не нужно было явно тип указывать, как у меня "int"?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2014, 00:59
Ответы с готовыми решениями:

Как передать массив в другой класс
Не могу понять, я хочу чтобы массив заполнялся в классе Program а выводился в классе Clas методе Out. Но чтобы не пытался изменить...

Как передать в функцию двумерный массив указателей на класс?
у меня есть std::vector<Monster*> monsters; Rect *pole; int pacmen_distance; Monster и Rect два...

Как считанный из файла массив передать в другой класс?
Дело в том, что если я просто создаю массив и заполняю его, то он у меня передаётся, а если считанный из файла то не хочет. Точнее мне надо...

23
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
09.02.2014, 15:47
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от insite2012 Посмотреть сообщение
Так в том и дело, что в данной ситуации исключение, как правило, будет всегда одно - по таймауту чтения из порта
А зачем там везде Thread.Sleep?

А это вообще что делает? Я как понял - ничего.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
                    //Ожидание заполнения буфера порта
                    for (int j = 0; j <= 100; j++)
                    {
                        if (_port.BytesToRead == 1)
                        {
                            ReadData(1);
                            break;
                        }
                        else
                            Thread.Sleep(10);
                        if (j == 10)
                            return "Устройство не отвечает!";
                    }
ReadData(1); прочитал данные и никуда их не сохранил. В чём смысл?
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
09.02.2014, 15:48
Casper-SC, ну насколько я знаю, Thread.Sleep - старинный способ синхронизации, идущий испокон веков от отцов-основателей.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
09.02.2014, 15:57
Тут есть над чем поработать похоже

Добавлено через 1 минуту
Цитата Сообщение от Psilon Посмотреть сообщение
Casper-SC, ну насколько я знаю, Thread.Sleep - старинный способ синхронизации, идущий испокон веков.
Я догадывался, но смысл в данном куске кода мне не ясен. Можно всё переписать, что не нужны будут все эти слипы и прочее. Правда не известно что сподвигло совершать данные действия (чтение и никуда не сохранение)... В общем, уверен, можно нормально всё переписать. Стиль оформления кода тоже под рестайлинг.

Добавлено через 7 минут
Сейчас посмотрел повнимательнее... В общем, сложно сказать, что там можно, что не можно, пока сам у себя не запустишь и не проверишь, что к чему. Я так вообще с этими портами дел не имел. Интересно, как можно в домашних условиях поработать с SerialPort?
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
09.02.2014, 19:24
Все дело в том, что устройства разные, хоть по внешнему виду и одинаковые... От одного ответ придет через 10 мс, от второго через 100, а от третьего вообще через 500... Потому и приходится делать цикл, в котором при каждой итерации-задержка и проверка, есть ли в буфере порта данные. Если есть - считывается байт и выход из цикла. Да, Вы правильно заметили, тут байт считывается как бы в никуда, поскольку это процесс записи, но считать его надо (иначе не поймешь, запись прошла или нет). Если его не считать, то по другому не поймешь, ответило устройство или нет, и соответственно есть ли смысл продолжать операцию...
Точно так же приходится ставить задержку и при чтении, поскольку там важно не только то, что данные пришли, но и их количество (то есть, к примеру, через 10 мс в буфере порта будет 200 байт, и если ориентироваться только на событие, то их уже можно читать). Но по команде, отправленной в устройство должно прийти не 200, а 264, и вот тут-то опять цикл с задержкой...
Да, я делал и без Sleep, запускал чтение в отдельном асинхронном потоке и использовал BeginInvoke-EndInvoke, но работает не всегда стабильно...
(PS. Кстати, я именно и работаю в домашних условиях. Я же не программист по сути, все мои программы ориентированы, как правило, на основную работу - работу с модулями от электронных устройств, с контроллерами в них. Согласен, что профессионал напишет куда лучше, но ничего, я постепенно учусь. До нового года писал на VB.NET, который более-менее освоил меньше чем за год, с нового года вот пробую на шарпе...).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.02.2014, 19:24

Передать массив значений в другой класс
Есть у меня программа Лабиринт. генерирует рандомный лабиринт. Каждая клетка имеет 4 стены со значением 0 или 1 Также я создал...

Не получается передать массив из одного в другой класс
Добрый день! Привет всем! Помогите пожалуйста! Как из класса Employee добавить масив работников в класс Departament так как в задании, если...

Как передать переменные в другой класс?
Всем привет. Не могу передать переменную в другой класс. Буду благодарна, если вы мне объясните в чем проблема. Вот у меня есть класс...

Как передать ссылку по клику в другой класс?
как передать ссылку по клику в другой класс есть класс парсера вот часть кода protected InputStream getInputStream() { ...

Как правильно передать ссылку в другой класс
Добрый день! Есть класс class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { @IBOutlet...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru