ho il seguente codice:Come Code Contracts per lavorare in 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);
}
}
Sono in esecuzione in modalità di debug, e dovrebbe sparare qualche tipo di errore nell'ultima riga
Console.WriteLine(SqrtRoot(-10));
anche se, per qualche ragione, non lo è. Sembra ignorare la chiamata di Contract.Requires(). Devo impostare qualcosa quando provo a usare i Contratti di codice?
Utilizzo Visual Studio 2010 RC.
Grazie
Questo genera un errore se per i valori di i = 0, i = 10 e i = -10. Non capisco –
L'ho appena provato con Contract.Requires (i> = 0); e ora la vita non è oscurata. Forse devi dare il tipo di eccezione come suggerisce Victor. –
Hm ... Hai ragione. Qualcosa non sta andando bene lì ... Anche se il comportamento predefinito dei contratti è quello di lanciare un errore e visualizzare una finestra. –