Присваивание пользовательскому классу значения стандартного типа (например, 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 }; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д