Область видимости объекта - C#

Узнай цену своей работы

Формулировка задачи:

Собственно вопрос в следующем: как сделать объект dom созданный одним методом доступным в другом для обработки.
 public class Building {
        private int area;
        private int floors;
 
        public Building(int x, int y) {
               area = x;
               floors = y;          
        }
 
        public void AddFloor(Building obj)
        {
            obj.floors = obj.floors + 1; 
        }
        public void DestroyFloor(Building obj)
        {
            if (obj.floors != 0)
            {
                obj.floors = obj.floors - 1;
            }            
        }
        public void DisplayResult(Building obj, TextBox box)
        {           
            box.Text  = "Площадь объекта: " + obj.area + " || Колличество этажей: " +  obj.floors;
        }
    }
    
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void result_text_TextChanged(object sender, TextChangedEventArgs e)
        {
 
        }
 
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            Building dom = new Building(Convert.ToInt32(area_text.Text), Convert.ToInt32(floors_text.Text));
            dom.DisplayResult(dom, result_text);           
        }
 
        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            dom.AddFloor(dom); // ОШИБКА < --- Имя dom отсутствует в текущем контексте
        }

    }

Решение задачи: «Область видимости объекта»

textual
Листинг программы
 public partial class MainWindow : Window
    {
        Building dom {get;set;}
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void result_text_TextChanged(object sender, TextChangedEventArgs e)
        {
 
        }
 
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            dom = new Building(Convert.ToInt32(area_text.Text), Convert.ToInt32(floors_text.Text));
            dom.DisplayResult(dom, result_text);           
        }
 
        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            dom.AddFloor(dom); 
        }
 
   
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы