代码协定(一)

 

代码协定提供了一种语言语法之外的验证,一般是建立在业务逻辑要求的基础上的。代码协定出前置条件,后置条件,和对象固定三块组成。
代码协定可以嵌入到 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);
        }
    }

你可能感兴趣的:(代码,Visual,Studio,代码协定,协定)