Проектирование по контракту в C # 3.0 - PullRequest
1 голос
/ 01 декабря 2010

Я знаю, что C # 4.0 имеет функцию Code Contract, которую можно использовать для реализации постусловия и предусловия.Но я хочу реализовать это только на C # 3.0.Я экспериментирую, чтобы использовать эту функцию в моей работе.Можно ли использовать attributes для реализации постусловий и предварительных условий?

Любой совет?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 01 декабря 2010

Вы можете использовать Кодовые контракты с C # 3 и .NET 3.5. Основное отличие состоит в том, что базовые классы (не инструменты) уже встроены в .NET 4.

0 голосов
/ 13 января 2011

Я использую простую инструкцию Debug.Assert для предусловий и постусловий и вручную пишу bool Invariant() функцию, которую я называю Debug.Assert(Invariant()) при входе и выходе соответствующих / нетривиальных открытых методов.Это ручная работа, хорошо, но это очень легко, и вы быстро привыкаете к этому.Кроме того, это позволяет мне очень близко следовать дизайну Эйфеля в соответствии с контрактной философией.

...