Я изучаю C # и столкнулся с очень простой проблемой в других языках, которая сводит меня с ума здесь ... Я, должно быть, упускаю что-то очевидное, но после пары часов поиска и поиска решений, я прихожу: p
Я делаю программу, имитирующую управление Улей.В объявлении Form1 () я инициализирую 2 переменные, один массив объектов Worker и объект Queen, который содержит массив рабочих bee:
public Form1()
{
InitializeComponent();
Worker[] workers = new Worker[4];
workers[0] = new Worker(new string[] { "Nectar Collector", "Honey Manufacturing" });
workers[1] = new Worker(new string[] { "Egg Care", "Baby Bee Tutoring" });
workers[2] = new Worker(new string[] { "Hive Maintenance", "Sting Patrol" });
workers[3] = new Worker(new string[] { "Nectar Collector", "Honey Manufacturing", "Egg Care", "Baby Bee Tutoring", "Hive Maintenance", "Sting Patrol" });
Queen queen = new Queen(workers);
}
Далее, мой «Button1» используется для назначения работыпчела, использующая объект Queen, объявленный в Form1 ().Очевидно, что это не в той же области видимости, так как "queen" объявлен в Form1 ().Поэтому я получаю сообщение об ошибке в этом коде:
private void button1_Click(object sender, EventArgs e)
{
if(***queen***.AssignWork(workerBeeJob.Text, (int)shifts.Value))
{
MessageBox.Show("The job '" + workerBeeJob.Text + "` will be done in");
}
«Имя« королева »не существует в реальном контексте».
И если я пытаюсь создать экземпляр объекта Queen вобласть моего класса (просто используя "Queen queen;" ...), я не могу передать ему массив Workers и не использовать ее, так как массив ее рабочих нулевой.Если я пытаюсь инстанцировать массив работников, кажется, что он работает для его создания («Worker [] worker = New Worker [4];»), но не для воплощения его ценностей («worker [0] = ....»), и в этот момент весь мой код красиво подчеркнут красным цветом, в то время как тот же код работает как талисман в методе Form1 ().
Итак, вот вопросы:
- Почему мы должны инициализировать компоненты в Form1 (), если мы не можем использовать их в другом методе?
- Почему я получаю петлю ошибок, если я выполняю инициализацию массива Workers непосредственно в классе Form1?
- И, очевидно, как я могу использовать мою Queen и ее массив Worker в прослушивателе событий?
Извините, если мне не ясно, и из-за большого количества вопросов по проблеметак просто.Я прочитал много сообщений, в частности это сообщение: C # ссылается на переменную из другого метода , но это не отвечает моей проблеме.