Я бы очень хотел опробовать новый Контракт кода в Visual Studio 2010, но я не хочу устанавливать дополнительные расширения для Visual Studio (так как мой код предоставлен моим коллегам).Теперь при настройке таргетинга на .NET 4.0 я могу использовать новое пространство имен System.Diagnostics.Contracts, но пока не заставляю его что-либо делать.
Например, используя
static void Main(string[] args)
{
Greet(null);
Console.ReadLine();
}
private static void Greet(string name)
{
Contract.Requires(name != null);
Console.Out.WriteLine("Hello {0}", name);
}
Программа компилируется и запускается (отображается «Hello») без каких-либо предупреждений.Если я пытаюсь использовать Contract.Requires<ArgumentNullException>(name != null)
, я получаю сообщение о том, что я должен использовать перезаписывающее устройство независимо от значения имени.Google говорит мне, что я могу получить любое волшебство, когда я устанавливаю Code Contracts Premium, но какова цель этого пространства имен, когда я этого не делаю?Могу ли я использовать кодовые контракты для чего-то другого, кроме сложных комментариев из коробки?