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

Куда вставить инициализацию объекта, что бы доступ был из других методов?

16.09.2015, 10:21. Показов 691. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день Куда вставить инициализацию объекта, что бы доступ был из других методов?

Вот массив объектов:
C#
1
2
           Res[] Resurs = new Res[300 * 300];   // Создание массива для объектов
           for (int i = 0; i < 300 * 300; i++) { Resurs[i] = new Res(); }  // Заполнение массива объектами
Есть класс Windows Form, в который я поместил метод void display(), который должен рисовать объекты. У объектов соответственность есть х, у и т.д., однако я не могу получить к ним доступ т.к. где бы я не создавал массив, он становится локальным.

C#
1
2
3
4
5
6
7
8
9
10
    public partial class Form1 : Form
    {
               /*Рисует все*/          void display()
        {
            for (int i = 0; i <= Res.max_element; i++)    // Цикл прорисовки ресурса
            {
                GL_box(Resurs[i].x, Resurs[i].y, sm.sh, Resurs[i].R, Resurs[i].G, Resurs[i].B, Resurs[i].A);
            }
         }
    }
Лог: Имя "Resurs" не существует в текущем контексте.

Думал заносить массив объектов в аргументы функции void display(), но эта функция вызывается таймером windows form по этому это не возможно (во всяком случае я не придумал как это сделать).
P.S. На С++ все работало т.к. массив объектов был глобальным, а на С#, я так понимаю, выходит что этот массив везде локальный и получается что как только метод прекращает работу, массив в обще удаляется
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.09.2015, 10:21
Ответы с готовыми решениями:

Обеспечить доступ к параметру метода из других методов
Передается параметр nn public Oplata(int nn) { if (nn == 0) { .......... ...

Где объявить sqlConnection, чтобы к нему был доступ из разных методов
Здравствуйте. в своем классе я обьявляю переменную SqlConnection myConnection; для того чтоб потом это соединение можно было использовать...

Что и куда надо вставить?
Здравствуйте! Прошу объяснить. Что и куда надо вставить? В какую ячейку? Если код по этой ссылке скачать в файл с расширением...

3
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
16.09.2015, 10:26
babanty,
C#
1
2
3
4
5
6
7
8
9
10
11
    public partial class Form1 : Form
    {
          Res[] Resurs = new Res[300 * 300];
               /*Рисует все*/          void display()
        {
            for (int i = 0; i <= Res.max_element; i++)    // Цикл прорисовки ресурса
            {
                GL_box(Resurs[i].x, Resurs[i].y, sm.sh, Resurs[i].R, Resurs[i].G, Resurs[i].B, Resurs[i].A);
            }
         }
    }
А вообще каша в голове та еще. Лучше книжку почитайте по шарпу. Шарп и плюсы абсолютно равнозначны, т.к. оба полные по тьюрингу языку, так что "в плюсах работало, а тут нет" к шарпу не применимо

Тем более за создание глобальных объектов и в плюсах по голове не гладят.
0
1 / 1 / 1
Регистрация: 13.08.2015
Сообщений: 45
16.09.2015, 10:47  [ТС]
Psilon, Я как раз в процессе изучения С#, не понимаю как раз некоторых вещей..

Странно, а в "учебнике" написано что в С# массив объектов создается именно таким образом:
C#
1
2
Res[] Resurs = new Res[300 * 300];   // Создание массива для объектов
for (int i = 0; i < 300 * 300; i++) { Resurs[i] = new Res(); }  // Заполнение массива объектами
Пока ошибок, не выдает, спасибо
________________________________________ ________________
P.S. На с++ это выглядело так и доступ к объекту sh был отовсюду
C++
1
2
3
4
5
6
7
8
9
10
    class start_main //
    {
    public:
        start_main();
        ~start_main();
 
        // Переменные
        GLfloat sh; // Шаг для рисования (минимальная единица рисования)
        int label2; // 
    } sm;
Добавлено через 7 минут
к объекту sm был отовсюду*
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
16.09.2015, 11:22
babanty, ну можешь в конструкторе его инициализировать, но ты же сам сказал:
однако я не могу получить к ним доступ т.к. где бы я не создавал массив, он становится локальным.
Ну так объяви его как поле (то есть на одном уровне с методами), а в конструкторе пиши своё:
C#
1
for (int i = 0; i < Resurs.Length; i++) { Resurs[i] = new Res(); }
Добавлено через 1 минуту
Цитата Сообщение от babanty Посмотреть сообщение
Пока ошибок, не выдает, спасибо
Ошибок не выдает, но пока что это пустой массив. То есть мы выделили malloc-ом память (в терминах С), но сама память забита нулями, соответственно ошибок нет до тех пор, пока ты не пытаешься к этой памяти обращаться. Для её заполнения и нужен цикл.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.09.2015, 11:22
Помогаю со студенческими работами здесь

Про инициализацию объекта в поле класса
Извините за тупой вопрос. Но,почему нельзя инициализировать объект в поле класса? у меня есть класс Sounds с параметризованным...

Эх, стену рисует, не знаю как сделать ее красненькой! Подскажите куда и что надо вставить!
В общем было задание нарисовать кирпичную стену! Я саму стену сделала не знаю как сделать ее красной! Подскажите rjadi =...

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

Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе работу этих методов
Реализация методов класса. Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе...

Как вставить в текст ячейки значения из других ячеек, при условии, что в тексте полно двойных ячеек?
Добрый день! Очень нужен совет знатоков. Задача: в ячейке находиться часть html-кода. В нем полным-полно двойных кавычек, которые...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru