Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 15.01.2018
Сообщений: 30

Переменные, объявленные в одном файле проекта, не видны в другом

09.04.2018, 19:33. Показов 1744. Ответов 4

Студворк — интернет-сервис помощи студентам
Здравствуйте. Рабтаю над проектом Windows приложения.
Код из первого файла:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
namespace MyApplication
{
    public partial class MainForm : Form
    {
        public static int i = 0;
        public Engineer[] engineer = new Engineer[100];
        public MainForm()
        {
            InitializeComponent();
        }
 
        void BtnAddEngineerClick(object sender, EventArgs e)
        {
            engineer [i] = new Engineer();
            engineer [i].Name = textboxName.Text;
            engineer [i].Surname = textboxSurname.Text;
            engineer [i].Age = int.Parse(textboxAge.Text);
            textboxName.Clear();
            textboxSurname.Clear();
            textboxAge.Clear();
        }
}
Код из второго файла:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
namespace MyApplication
{
    public partial class AllInfoForm : Form
    {
        public AllInfoForm()
        {
            InitializeComponent();
        }
 
        void AllInfoFormLoad(object sender, EventArgs e)
        {
            if (i=0) //error
                lblINFO.Text="There is no input information.";
            else
                for (int j=0; j<i; j++) //error
            {
                lblINFO.Text=engineer[i].InformationOutput(engineer[i]); //error
            }
        }
    }
}
Переменные
C#
1
i
и
C#
1
engineer [i]
не видны во втором файле, из-за чего код не компилируется. Как можно это исправить? Подскажите, пожалуйста.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.04.2018, 19:33
Ответы с готовыми решениями:

Не видны переменные, объявленные в блоке Try/Catch
try{ int i = 0; } i++; Ошибка Как исправить, заставить увидеть переменную?

Переменные в VBS-файле (объявленные внутри ASP)
Я подключаю к ASP VBS-файл (&lt;script language='vbscript' src='...'&gt;&lt;/script&gt;). В нём описаны некие функции. Вопрос: будут ли эти функции...

Не видны переменные в другом условии
Добрый день. Может глупый вопрос, но не могу понять как решить проблему: if(isset($_POST)) { //получаем месяц из POST'a ...

4
 Аватар для Fleder
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
09.04.2018, 19:44
Лучший ответ Сообщение было отмечено Shpit как решение

Решение

Shpit, у вас переменные в классе MainForm ,
а доступ к ним вы хотите получить из класса AllInfoForm .
1
0 / 0 / 1
Регистрация: 15.01.2018
Сообщений: 30
09.04.2018, 19:57  [ТС]
Fleder, подскажите, пожалуйста, как тогда лучше их объявить?
0
 Аватар для Fleder
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
09.04.2018, 20:08
Цитата Сообщение от Shpit Посмотреть сообщение
подскажите, пожалуйста, как тогда лучше их объявить?
Хм... Если они нужны "глобально", так сказать, то можно сделать как у вас и было,
но обращаться к ним надо по-другому:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
   public partial class MainForm : Form
   {
      public static int i = 0;
      public static Engineer[] engineer = new Engineer[100];
   }
 
   public partial class AllInfoForm : Form
   {
      void AllInfoFormLoad(object sender, EventArgs e)
      {
         int i = MainForm.i;
         Engineer[] engineer = MainForm.engineer;
 
         if(i == 0) //error
            lblINFO.Text = "There is no input information.";
         else
            for(int j = 0; j < i; j++) //error
            {
               lblINFO.Text = engineer[i].InformationOutput(engineer[i]); //error
            }
      }
   }
Но это так, навскидку. Возможно, не самая лучшая архитектура. Строго не судите.
1
0 / 0 / 1
Регистрация: 15.01.2018
Сообщений: 30
09.04.2018, 20:22  [ТС]
Fleder, спасибо за помощь. Думаю, стоит изменить код программы,чтобы не делать их "глобальными".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.04.2018, 20:22
Помогаю со студенческими работами здесь

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

Можно ли на javascript'e в одном js-файле использовать функции, описанные в другом js-файле?
Подскажите, плз, можно ли на javascript'e в одном js-файле использовать функции, описанные в другом js-файле? (который лежит на другом...

Как передать значение переменной PHP в одном файле в переменную JS в другом файле?
Подскажите пожалуйста, как передать значение PHP из одного файла в JS в другом. Везде облазил. Варианта только два. Но Cookies не работают...

Сравнение слов в одном файле со словами в другом файле
Здравствуйте! Суть задачи такая: 1. Первый файл - запросы с городами, второй файл - база городов РФ. Оба txt 2. Найти в запросах все...

Сравнение слов в одном файле со словами в другом файле
Здравствуйте! Суть задачи такая: 1. Первый файл - запросы с городами, второй файл - база городов РФ. Оба txt (для Excel пусть не файлы,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru