Перегрузка оператора false и -- - C#

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

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

Здравствуйте! Посмотрите пожалуйста, правильно ли я переопределяю оператор false и -- т.к. во время проверки оператора -- число уменьшается на 1 а не на 55. Подскажите что делаю не так, заранее, я новичок если что
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // инициализируем классы
            B arrB1 = new B(5.9f);
            B arrB2 = new B(11.44f);
            B arrBfalse = new B(false);
 
            // Проверяем на равенство
            if (arrBfalse._bool)
                System.Console.WriteLine("true");
            else
                System.Console.WriteLine("false");
            System.Console.WriteLine("arrB1.d = {0}", arrB1.d);
 
            System.Console.WriteLine("arrB1.d-- = {0}", --arrB1.d);
            // Вызов функции через интерфейс IPrfloatMessage
            System.Console.WriteLine("Вызов функции через интерфейс IPrfloatMessage:");
            IPrfloatMessage iarrB = new B(45.54f);
            iarrB.PrfloatMessage();
            // Вызов функции через интерфейс IBPrfloatMessage
            System.Console.WriteLine("Вызов функции через интерфейс IBPrfloatMessage:");
            IBPrfloatMessage iarrB2 = new B(1.1f);
            iarrB2.BPrfloatMessage();
 
            Console.ReadLine();
        }
    }
 
    public interface IPrfloatMessage
    {
        // Определяем набор абстрактных методов
        void PrfloatMessage();
    }
    public interface IBPrfloatMessage
    {
        // Определяем набор абстрактных методов
        void BPrfloatMessage();
    }
    // объявляем класс и наследуем интерфейс IPrfloatMessage
    class A : IPrfloatMessage
    {
        private float a;
        private float b;
        private float _c;
 
        public float c
        {
            get
            {
                _c = a;
                _c += a * b;
                _c += b;
                return ++_c;
            }
        }
        public bool _a
        {
            get
            {
                return a == b;
            }
        }
        public A()
        {
            a = 5.6f;
            b = 3.4f;
        }
        // функция вывода сообщения
        public void PrfloatMessage()
        {
            Console.WriteLine("Данное сообщение - результат работы функции PrfloatMessage()");
        }
    }
    // объявляем класс B который наследует класс A и другой интерфейс IBPrfloatMessage
    class B : A, IBPrfloatMessage
    {
        public bool _bool;
        public float d;
        public float c2
        {
            get
            {
                return d;
            }
        }
 
        public B(float v)
        {
            d += v + c;
        }
        public B(bool _bool)
        {
            this._bool = _bool;
        }

        // оператор false
        public static bool operator false(B c)
        {
            return c._bool;
        }
 
        // оператор true
        public static bool operator true(B c)
        {
            return c._bool;
        }
 
        // оператор --
        public static B operator --(B c)
        {
            return new B(c.d - 55);
        }
 
        // функция выводит сообщение
        public void BPrfloatMessage()
        {
            Console.WriteLine("Данное сообщение - результат работы функции BPrfloatMessage()");
        }
    }
}

Решение задачи: «Перегрузка оператора false и --»

textual
Листинг программы
        // оператор --
        public static B operator --(B c)
        {
            c.d -= 2;
            return c;
        }

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


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

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

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