首页 新闻 搜索 专区 学院

契约式编程的菜鸟问题

0
悬赏园豆:5 [已解决问题] 解决于 2013-06-09 16:32
 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             Contract.ContractFailed += (sender, e) =>
 6             {
 7                 Console.WriteLine("协定出错");
 8                 Console.WriteLine(e.Message);
 9                 e.SetHandled();
10             };
11 
12             int result = 0;
13             try
14             {
15                 result = sub(4, 5);
16             }
17             catch
18             {
19                 Console.WriteLine("Catch A Exception");
20             }
21             finally
22             {
23                 Console.WriteLine(result);
24             }
25 
26             Console.ReadLine();
27         }
28         public static int sub(int a, int b)
29         {
30             Contract.Requires(a > b, "fUCK YOU");
31 
32             return a - b;
33         }
34     }

运行结果只输出 -1.

为什么协定出错了,Contract.ContractFailed没有捕获到。

Mr.eleven的主页 Mr.eleven | 初学一级 | 园豆:197
提问于:2013-06-01 11:45
< >
分享
最佳答案
0

自带的code contract的大部分功能还要装个插件才能用。

http://visualstudiogallery.msdn.microsoft.com/1ec7db13-3363-46c9-851f-1ce455f66970

收获园豆:5
天方 | 大侠五级 |园豆:5264 | 2013-06-01 14:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册