Присваивание пользовательскому классу значения стандартного типа (например, double) - C#

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

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

Есть вот такой код:
    class Program
    {
        static void Main()
        {
            ProductionUnit pu = new ProductionUnit();
            double d = 123.456;
 
            pu = d;
            System.Console.WriteLine(pu.oil);
            
            d = 0;
            d = pu;
            System.Console.WriteLine(d);
        }
    }
    public class ProductionUnit
    {
        public double oil;
        public double water;
        // здесь должен быть какой-то код, который показывает, как классу следует работать при прямом присвоении типа double
    }
Я хочу, чтобы по умолчанию, если я пытаюсь присвоить объекту типа ProductionUnit значение типа double, то оно записывалась в переменную класса oil. И наоборот, если я присваиваю переменной типа double переменную типа ProductionUnit, то переменной типа double присваивалось значение переменной класса oil. Как это реализовать?

Решение задачи: «Присваивание пользовательскому классу значения стандартного типа (например, double)»

textual
Листинг программы
public class ProductionUnit
{
    public double Oil { get; set; }
    public double Water { get; set; }
 
    public static implicit operator double(ProductionUnit d)
    {
        return d.Oil;
    }
    public static implicit operator ProductionUnit(double d)
    {
        return new ProductionUnit() { Oil = d };
    }
}

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


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

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

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