代码协定(一)

 

代码协定提供了一种语言语法之外的验证,一般是建立在业务逻辑要求的基础上的。代码协定出前置条件,后置条件,和对象固定三块组成。
代码协定可以嵌入到 VS中使用,具体下载地址为: http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx,。
现在分为两个版本,Standard和Premium,standard可以安装在除Express的版本上,它包含着单独的协定库。Premium版只能安装在Visual Studio 2008 Team System,Visual Studio 2010 Premium Edition,或者Visual Studio 2010Ultimate版本上。
如果在visual studio 2008的后续版本,使用代码协定是不用添加协定标记“CONTRACTS_FULL”。
安装完代码协定的安装包后,新建一个项目,选择项目的属性,如下图:
 

只有当选中Runtime Checking和Static Checking,项目中的代码协定的方法才会起作用。代码协定是用Contracts类实现的,它位于System.Diagnostics.Contracts命名空间,Contracts类是静态类。
class Person
    {
        int age;
        public Person(int age)
        {
            this.age = age;
        }
        public int Age
        {
            get
            {
//后置协定
                Contract.Ensures(Contract.Result<int>() > 0 && Contract.Result<int>() < 150);
                return age;
            }
            set
            {
//前置协定
                Contract.Requires(value > 0 && value < 150, "年¨º龄¢?在¨²0到Ì?150岁¨º之?间?");
                age = value;
            }
        }
//对象固定
        [ContractInvariantMethod]
        void ObjectInvariant()
        {
            Contract.Invariant(this.age > 0 && this.age < 150);
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值