Область видимости объекта - 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);
}
}