Как стать автором
Обновить

Комментарии 15

Версия VS играет значение? На какой версии можно попробовать?

Ну на VS 22 точно будет работать. Про VS 19 честно - не знаю, не пробовал.

Если что, есть dotnet CLI.

Я, когда делал подобное, реализовал операцию умножения для кратных приставок (кило, милли). Тогда объявляются классы базовых единиц измерения, а кратные записываются как
1 * k * m.

Нельзя. Проблема в том, что нам нужен дженерик оператор, а не оператор на дженериках. Т. е. что-то типа

static TNew operator +<TNew>(TOld a, TNew b)

Это приватная реализация, или как она там называется, а не дженерик оператор.

Я же говорю - нет. В твоем коде + все равно НЕ дженерик оператор. Интерфейс никак ни на что не влияет. Интерфейс нужен для того, чтобы уметь ограничить тип до того, у которого есть оператор. А мне нужен дженерик оператор. А его нет. Совсем нет.

НЛО прилетело и опубликовало эту надпись здесь

Верно, это до сих пор preview фича

НЛО прилетело и опубликовало эту надпись здесь

Сработает, конечно. 1 час / 12 минут будет 0.08 час/мин :).

На самом деле еще нужен метод упрощения, который упрощал бы, например, деление единиц с одной базы до просто скалярного значения. Пока что при любой операции само выражение единицы измерения будет только нарастать.

НЛО прилетело и опубликовало эту надпись здесь

Достаточно долго программирую на C# в Enterprise. Успел проникнутся идеей DDD о строгой типизацией бизнес-сущностей, и пытаюсь её использовать там, где это уместно. Но, сталкиваясь только с днями, рублями и квадратными метрами, как то вообще упустил из виду, что вокруг есть целый физический мир. И в нем есть единицы измерения, которые тоже можно типизировать. И не в контексте бизнес-требований, а просто сами по себе. А там и производные единицы, и действия над ними, и приведение одних к другим...

Огромное спасибо за статью! Хожу довольный как ребёнок, который узнал что-то новое)

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Публикации

Истории