разница в Contract.Requires и Contract.Ensures

Я посмотрел разницу на сайте Microsoft, но не вижу разницы. ссылки на сайт ниже

Любое дополнительное объяснение было бы здорово

Использование визуальной студии С#


person Christie Davis    schedule 29.10.2013    source источник


Ответы (1)


Requires – это предварительное условие, означающее, что указанное условие должно быть истинным до вызова метода. Ensures — это постусловие, означающее, что метод гарантирует, что указанное условие будет истинным после завершения вызова метода.

Предусловия и/или постусловия могут быть нарушены во время выполнения метода: проверки выполняются при входе в метод и выходе из него соответственно. Неизменное условие — это контракт, в котором говорится, что указанное условие всегда выполняется.

Прочтите Бертрана Мейера Конструкция объектно-ориентированного программного обеспечения, чтобы получить более [намного больше] подробностей. Эта статья Мейера короче [намного короче].

person Nicholas Carey    schedule 29.10.2013
comment
хороший. Я бы также предложил курсы Provable Code или Code Contracts на сайтеmultiralsight.com. Они дают очень хорошее представление о дизайне по контракту с использованием Microsoft Code Contracts. - person Ilya Ivanov; 29.10.2013