Присваивание пользовательскому классу значения стандартного типа (например, double) - C#
Формулировка задачи:
Есть вот такой код:
Я хочу, чтобы по умолчанию, если я пытаюсь присвоить объекту типа ProductionUnit значение типа double, то оно записывалась в переменную класса oil. И наоборот, если я присваиваю переменной типа double переменную типа ProductionUnit, то переменной типа double присваивалось значение переменной класса oil.
Как это реализовать?
Листинг программы
- 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
- }
Решение задачи: «Присваивание пользовательскому классу значения стандартного типа (например, 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 };
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д