Это основанные на фреймворке не зависящие от языка методы определения контрактов кода в .NET. Хотя некоторые языки, такие как spec # и Delphi Prism, имеют первоклассную языковую поддержку для контрактов кода, этот основанный на фреймворке подход делает его доступным для всех языков .NET. IronRuby, IronPython, F #, VB.NET и т. Д.
Require () - это проверка уровня метода в ENTRY, Ensure () - проверка уровня метода в EXIT, а Assert () - проверка в любой точке, где она вызывается. То есть, в какой бы точке выполнения эти методы ни применялись, условие, которое вы им передаете, будет оценено. Если это условие не выполняется, возникает ошибка.