Здравствуйте, T4r4sB, Вы писали:
TB>А как этот долбаный фанатик собирается писать банальную задачу "прибавить к позиции шахматной фигуры смещение и проверить валидность результата"? Ведь согласно его идеям позиция шахматной фигуры должна иметь тип [0..8), а смещение должно иметь тип [-7 ..7], и складывать их нельзя, и любая попытка скастить одно к другому вызовет исключение в некоторых случаях.
TB>То есть он предлагает что-то типа
TB>TB>try_cast_or_throw<Position>((position as int) + (offset as int))
TB>
TB>?
Не знаю, что там Волшин, а в нормальных языках и библиотеках оператор + просто определяется для (position, offset)->position и (offset, offset)->offset.
Зачем городить преобразования туда-обратно мне решительно непонятно. Задача отличается от алгебры поверх DateTime / TimeSpan исключительно дополнительными ограничениями на диапазон валидных значений.