Не изменяется свойство - C#
Формулировка задачи:
Добрый вечер!
Задача - написать упрощенный эмулятор бытовых приборов.
Есть два класса: родитель Device.cs и его наследник Lamp.cs
При создании объекта myLamp мы задаем только его имя. Изначальное состояние - лампа выключена, а следовательно яркость 0, и менять мы ее не можем. Когда мы включаем лампу, яркость - 10. Единственные действия с ней: включение, выключение, Добавить яркость, Убавить яркость.
Проверку на корректное изменение яркости я реализовал свойстве Bright через сеттер.
Но, проблема в том, что когда я создаю объект, все его изначальные свойства корректные (имя, статус, яркость), но вот когда я хочу включить лампу, изменяется только статус (с true на false), а вот яркость остается неизменной.
Прилагаю коды классов:
//Класс Device.cs
//Класс Lamp
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication12 { class Device { //Поля private bool devStatus; private string devName; private int lampBright; //Конструкторы public Device() { } public Device(string name) { Name = name; Status = false; } //Методы public virtual void On() { devStatus = true; } public virtual void Off() { devStatus = false; } public override string ToString() { return devName; } //Свойства public string Name { get; set; } public bool Status { get { return devStatus; } set { if (value) devStatus = true; else devStatus = false; } } public int Bright { get { return lampBright; } set { if (devStatus) { if (value > 10) lampBright = 10; else if (value < 0) lampBright = 0; else lampBright = value; } else lampBright = 0; } } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication12 { class Lamp : Device, ILight { //Поля //Конструктор public Lamp(string name) : base(name) { Bright = 0; } //Методы public void LightUp() { Bright += 1; } public void LightDown() { Bright -= 1; } public override string ToString() { return "Имя: " + Name + Environment.NewLine + "Статус: " + Status + Environment.NewLine + "Яркость: " + Bright; } //Свойства } }
Решение задачи: «Не изменяется свойство»
textual
Листинг программы
public void LightUpd() { Bright = Bright; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д