0

В функции которая обрабатывает клик по кнопке я создаю экземпляр newPlant класса Plant

Plant newPlant = new Plant()
{
   name = plantName.Text,
   color = color,
   age = 316
};

Как мне обратиться к этому экземпляру в другой функции, чтобы поменять значения полей и вызвать метод класса? Когда я пытаюсь писать через newPlant, пишет что такого имени не существует в данном контексте.

  • Например, передать в функцию экземпляр этого объекта. public void DoSomthing(Plant plant){ plant.name = "..."; } – Игорь Mar 29 '21 at 18:05
  • @Игорь Пишет: Нет перегруженного метода для "showInfo_Click", который соответствует делегату "RoutedEventHandler" – Бармалей Mar 29 '21 at 19:06
  • сделать Plant newPlant приватным полем класса в котором расположены эти функции, а точнее методы. – Bulson Mar 29 '21 at 19:24
  • 1
    Хватит задавать одно и тоже, почитайте внимательно ссылку, что я вам даю! Хотите использовать объект в других методах внутри класса, выносите ее за пределы метода и делайте там приватное поле. Хотите использовать за пределами класса, изменяйте модификатор доступа, хотите, чтобы класс/метод использовал внешний объект, передавайте через конструктор/параметр. Об этом всем написано по ссылке, которую я вам уже 2-й вопрос подряд кидаю... – EvgeniyZ Mar 29 '21 at 22:10
  • @EvgeniyZ Прошу прощения, но я не понимаю как это сделать. Вот моя задача: https://ibb.co/6mYMRLB Если вам не трудно, можете на пальцах объяснить как это сделать в контексте моего кода. – Бармалей Mar 30 '21 at 15:53
  • Написать "не понимаю" легче, чем попробовать, да?) Ну ок, по порядку, строка = new MainWindow() что делает? Ключевое слово new, то есть "создать новый". Это то поведение, которое вы хотите? Далее, что не понятного в Хотите использовать объект в других методах внутри класса, выносите ее за пределы метода и делайте там приватное поле? Вроде все доходчиво написал. Далее, Хотите использовать за пределами класса, изменяйте модификатор доступа, ну и хотите, чтобы класс/метод использовал внешний объект, передавайте через конструктор/параметр., что тут не ясно? Ссылку откройте, там примеры! – EvgeniyZ Mar 30 '21 at 22:33
  • @EvgeniyZ При большом уважении, я понимаю как это, когда очевидные вам вещи кажутся неочевидными и сложными для другого, но я не понимаю вас 1) что значит выносите его за пределы метода? 2) "Меняйте модификатор" доступа, везде стоит public. 3) Примеры по ссылке у меня не получается связать с моими примерами https://ibb.co/6X8L5nf – Бармалей Apr 01 '21 at 20:57
  • что значит выносите его за пределы метода? - открываем ту ссылку, что я вам дал и видим А сможем ли мы получить доступ MyField из других классов, методов и др.?, далее там же видим пример, где подробно расписано Мы задаем необходимый нам объект, к которому имеет доступ все, что находится внутри текущего класса.. Вроде понятно все, не? Даже с примером... Также хочу заметить, что вы меня не слышите! Я что сказал? "Ключевое слово new, то есть "создать новый". Вы делаете новое окно. когда вам надо передать ссылку на старое (как? Опять же в том ответе это так называемый "конструктор",). – EvgeniyZ Apr 01 '21 at 21:23

0 Answers0