C# LanguageКодовые контракты


Синтаксис

  1. Contract.Requires (условие, userMessage)

    Contract.Requires (условие, userMessage)

    Contract.Result <Т>

    Contract.Ensures ()

    Contract.Invariants ()

замечания

.NET поддерживает идею Design by Contract через свой класс Contracts, найденный в пространстве имен System.Diagnostics и представленный в .NET 4.0. API Code Contracts API включает в себя классы для проверки статичности и времени выполнения кода и позволяет определять предварительные условия, постусловия и инварианты внутри метода. Предварительные условия определяют условия, которые должны выполнять параметры перед тем, как метод может выполнить, постусловия, которые проверяются по завершении метода, а инварианты определяют условия, которые не изменяются во время выполнения метода.

Зачем нужны кодовые контракты?

Отслеживание проблем приложения, когда приложение работает, является одной из главных проблем всех разработчиков и администраторов. Отслеживание может выполняться многими способами. Например -

  • Вы можете применить трассировку в нашем приложении и получить информацию о приложении, когда приложение запущено

  • Вы можете использовать механизм регистрации событий при запуске приложения. Сообщения можно увидеть с помощью средства просмотра событий

  • Вы можете применять мониторинг производительности через определенный промежуток времени и записывать данные в реальном времени из своего приложения.

Кодовые контракты используют другой подход для отслеживания и управления проблемами в приложении. Вместо того, чтобы проверять все, что возвращается из вызова метода, Кодовые контракты с помощью предварительных условий, постусловий и инвариантов в методах, убедитесь, что все входящие и выходящие из ваших методов правильны.

Кодовые контракты Связанные примеры