Я могу сказать, что я хорошо знаком с Code Contracts: я прочитал и понял большую часть руководство пользователя и использовал они довольно долгое время, но у меня все еще есть вопросы. Когда я ищу SO для "незавершенных кодовых контрактов", существует довольно много хитов, и все спрашивают, почему их конкретное утверждение не может быть проверено статически. Хотя я мог бы сделать то же самое и опубликовать свой конкретный сценарий (который есть btw:
),
Я бы предпочел понять, почему любое условие Кодового Контракта может или не может быть доказано. Иногда меня впечатляет то, что он может доказать, а иногда я... ну... сказать это вежливо: определенно не впечатлило. Если я хочу это понять, я хотел бы знать механизмы, используемые статическим контролером. Я уверен, что я буду учиться на опыте, но я распыляю заявления Contract.Assume
повсюду, чтобы предупредить об этом, и я чувствую, что это не то, что подразумевается в кодовых контрактах. Googling не помог мне, поэтому я хочу спросить вас, ребята, о ваших впечатлениях: какие (неочевидные) модели вы видели? И что заставило вас увидеть свет?