首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#接口中的契约编程,看得不是很懂,请懂的的的高手分别解释下,多谢了

2012-04-26 
C#接口中的契约编程,看得不是很懂,请懂的的的高手分别解释下,谢谢了int IListT.IndexOf(T value){Contra

C#接口中的契约编程,看得不是很懂,请懂的的的高手分别解释下,谢谢了
int IList<T>.IndexOf(T value) 
{
  Contract.Ensures(Contract.Result<int>() >= -1);
  Contract.Ensures(Contract.Result<int>() < ((ICollection<T>)this).Count); 
  return default(int); 
}
我只知道Contract.Ensures();是验证后置条件.
Contract.Result<int>() ;但这句看不懂,MSDN 上说:“表示一个方法或属性的返回值。 ”在这里具体返回什么?或者麻烦高手再举更详细简单点的例子解释下,谢谢了。

[解决办法]
Contract.Result<int>()就是你本函数的返回值,就是return default(int),比如:
static double DoSomething(double divisor, double dividend)
{
//要求函数返回值必须大于0
Contract.Ensures(Contract.Result<double>() > 0);
return divisor / dividend;
}

热点排行