Не изменяется свойство - C#

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

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

Добрый вечер! Задача - написать упрощенный эмулятор бытовых приборов. Есть два класса: родитель Device.cs и его наследник Lamp.cs При создании объекта myLamp мы задаем только его имя. Изначальное состояние - лампа выключена, а следовательно яркость 0, и менять мы ее не можем. Когда мы включаем лампу, яркость - 10. Единственные действия с ней: включение, выключение, Добавить яркость, Убавить яркость. Проверку на корректное изменение яркости я реализовал свойстве Bright через сеттер. Но, проблема в том, что когда я создаю объект, все его изначальные свойства корректные (имя, статус, яркость), но вот когда я хочу включить лампу, изменяется только статус (с true на false), а вот яркость остается неизменной. Прилагаю коды классов: //Класс Device.cs
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;
            }
        }
    }
}
//Класс Lamp
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;
        }

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


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

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

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