Архив метки: C#

Составные сущности как скалярные величины (на примере денег)

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

Допустим, у нас есть класс Money со свойствами Amount (количество) и Currency (валюта), в которое реализовано неявное преобразование к decimal и int. Также перегружен оператор + для сложения Money с Money:

Это позволяет безо всяких приведений типов и выковыривания Amount складывать Money не только с Money, но и с decimal и int. Результатом таких операций будет число decimal или int соответственно.

Читать далее

Null[able] Hacks

Знаете ли вы, как работает nullNullable) в различных операциях и логических выражениях в C#? Некоторые моменты неочевидны.

Арифметика

Например, null пожирает остальные значения в арифметических операциях и превращает результат в null:

Где это может пригодиться

Не знаю, где это может пригодиться, но это довольно забавно. А если серьезно, то просто имейте это в виду.

Читать далее