Здравствуйте, T4r4sB, Вы писали:
TB>Ну ок, у тебя есть position, который [0..8) и offset который [-7..7]. Если ты применишь оператор (position, offset)->position к паре (5,5), то у тебя будет паника и прога упадёт.
Ну почему же упадёт? Надо просто ловить соответствующее исключение. Типичный пример checked arithmetics.
Опять же, в приличных языках есть возможности отдельно описать поведение операторов с включенными проверками и без них, и дать пользователю выбор.
Тогда
var a = (position)5 + (offset)5 - (offset)3;
даст
a == (position)8, а
checked
{
var a = (position)5 + (offset)5 - (offset)3;
}
— выбросит исключение.