То, чтобы заставлять Контракты Кода работать в Visual Studio 2010

У меня есть следующий код:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(SqrtRoot(0));
        Console.WriteLine(SqrtRoot(10));
        Console.WriteLine(SqrtRoot(-10));
        Console.ReadKey();
    }

    public static int SqrtRoot(int i)
    {
        Contract.Requires(i >= 0);
        return (int)Math.Sqrt(i);
    }
}

Я выполняю его в режиме отладки, и это должно запустить некоторую ошибку в последнюю строку

Console.WriteLine(SqrtRoot(-10));

хотя по некоторым причинам это не делает. Это, кажется, игнорирует Контракт. Требует () вызова. Я должен настроить что-то при попытке использовать Контракты Кода?

Я использую RC Visual Studio 2010.

Спасибо

6
задан devoured elysium 14 February 2010 в 22:58
поделиться

3 ответа

У меня тоже нет этой вкладки, но я нашел обходной путь:

Contract.Requires<ArgumentOutOfRangeException>(i >= 0);

Вероятно, пакет контрактов кода должен быть установлен, но ссылка для загрузки не работает. http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx

2
ответ дан 17 December 2019 в 00:08
поделиться

Я думаю, вам нужно включить проверку контрактов во время выполнения в настройках проекта (должна быть панель "Code Contracts"...)

Дополнительную информацию смотрите в пользовательской документации (раздел 6).

0
ответ дан 17 December 2019 в 00:08
поделиться

Вам необходимо установить интеграцию Visual Studio. Хотя сама библиотека CodeContracts является частью.NET 4, ваш код должен быть переписан переписчиком Code Contracts ( ccrewrite ), чтобы действительно правильно использовать библиотеку.

Загрузите установщик с сайта DevLabs .

5
ответ дан 17 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: