Comments 15
Версия VS играет значение? На какой версии можно попробовать?
Я, когда делал подобное, реализовал операцию умножения для кратных приставок (кило, милли). Тогда объявляются классы базовых единиц измерения, а кратные записываются как
1 * k * m.
Нельзя. Проблема в том, что нам нужен дженерик оператор, а не оператор на дженериках. Т. е. что-то типа
static TNew operator +<TNew>(TOld a, TNew b)
Это приватная реализация, или как она там называется, а не дженерик оператор.
Хотя быть может я не совсем понимаю, что имеется ввиду под этим:static TNew operator +<TNew>(TOld a, TNew b)
Верно, это до сих пор preview фича
Достаточно долго программирую на C# в Enterprise. Успел проникнутся идеей DDD о строгой типизацией бизнес-сущностей, и пытаюсь её использовать там, где это уместно. Но, сталкиваясь только с днями, рублями и квадратными метрами, как то вообще упустил из виду, что вокруг есть целый физический мир. И в нем есть единицы измерения, которые тоже можно типизировать. И не в контексте бизнес-требований, а просто сами по себе. А там и производные единицы, и действия над ними, и приведение одних к другим...
Огромное спасибо за статью! Хожу довольный как ребёнок, который узнал что-то новое)
Очень типобезопасно! Концепт продвинутой расширяемой системы единиц измерения с generic math для .NET