Re[7]: Начать ли использовать Code Contracts?
От: Poopy Joe Бельгия  
Дата: 13.08.15 09:21
Оценка:
Здравствуйте, Doc, Вы писали:

Doc>Здравствуйте, Poopy Joe, Вы писали:


PJ>>А if на каждый чих это не страшно? А контракты на каждый чих не то же самое?


Doc>Нет, не тоже самое. В случае контрактов

Doc>*) Не надо писать код для SizeOfSomething + SizeOfSomething, SizeOfSomething + SizeOfSomething2 итд
Надо! Или нет гарантии, что радианы не будут складываться с градусами, а размер головы с размером ноги.

Doc>*) Приведение SizeOfSomething к другим "физическим" типам

Что значит приведение? Другая величина это другая величина. Типа каста к float? Так весь смысл в том, чтобы этого не требовалось.

Doc>*) If для проверки вам не удастся привязать к интерфейсам (будут или вызовы вручную класса проверки или копипаста в каждую реализацию)

Не понял. Какой if, какой проверки? Интерфейс с типом SizeOfSomething не требует дополнительных проверок.

Doc>*) Не всегда диапазон зависит от физической величины. Метод может вполне иметь свои ограничения.

И? Допустим метод принимает возраст и требует, чтобы он был больше 18 лет. Тогда параметр будет например Adult<Age>. Вызываемый метод гарантированно имеет правильные значения, а вызывающие метод просто физически не сможет послать неверные данные, об этом заботится компилятор. А чем тут помогут контракты? Выкинут исключения во времени исполнения? Очень "полезно".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.