Ich habe den folgenden Code:Erste-Code Verträge in Visual Studio 2010 arbeiten
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);
}
}
ich es im Debug-Modus laufen lasse, und es soll eine Art von Fehlern in der letzten Zeile
Console.WriteLine(SqrtRoot(-10));
Feuer
obwohl aus irgendeinem Grund nicht. Es scheint den Contract.Requires() -Aufruf zu ignorieren. Sollte ich etwas einrichten, wenn ich Code Contracts verwenden möchte?
Ich verwende Visual Studio 2010 RC.
Dank
Das wird einen Fehler auslösen, wenn für Werte von i = 0, i = 10 und i = -10. Ich verstehe es nicht. –
Ich habe gerade versucht, dass mit Contract.Requires (i> = 0); und jetzt ist das Leben nicht ausgegraut. Vielleicht müssen Sie den Ausnahmetyp angeben, wie Victor es vorschlägt. –
Hm ... Du hast Recht. Etwas läuft dort nicht gut ... Auch wenn das Standardverhalten von Verträgen darin besteht, einen Fehler zu verursachen und ein Fenster anzuzeigen. –