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

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

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

Есть вот такой код:
Листинг программы
  1. class Program
  2. {
  3. static void Main()
  4. {
  5. ProductionUnit pu = new ProductionUnit();
  6. double d = 123.456;
  7. pu = d;
  8. System.Console.WriteLine(pu.oil);
  9. d = 0;
  10. d = pu;
  11. System.Console.WriteLine(d);
  12. }
  13. }
  14. public class ProductionUnit
  15. {
  16. public double oil;
  17. public double water;
  18. // здесь должен быть какой-то код, который показывает, как классу следует работать при прямом присвоении типа double
  19. }
Я хочу, чтобы по умолчанию, если я пытаюсь присвоить объекту типа ProductionUnit значение типа double, то оно записывалась в переменную класса oil. И наоборот, если я присваиваю переменной типа double переменную типа ProductionUnit, то переменной типа double присваивалось значение переменной класса oil. Как это реализовать?

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

textual
Листинг программы
  1. public class ProductionUnit
  2. {
  3.     public double Oil { get; set; }
  4.     public double Water { get; set; }
  5.  
  6.     public static implicit operator double(ProductionUnit d)
  7.     {
  8.         return d.Oil;
  9.     }
  10.     public static implicit operator ProductionUnit(double d)
  11.     {
  12.         return new ProductionUnit() { Oil = d };
  13.     }
  14. }

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


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

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

8   голосов , оценка 4.25 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы