本文介绍了Contract.Ensures(Contract.Result< int>()==(x * x));的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好, 任何人都可以看到此代码中的错误吗?

Hello,  Can anybody see the error in this code?

 static int g(int x)
        {
            Contract.Requires(x >= 0);
            Contract.Ensures(Contract.Result<int>() == (x*x));
            
            int j = 0;
            for (int i = 0; i < x; i++)            
                j += x;            

            return j;
        }




谢谢!


Thanks!

推荐答案

试试这个:

static int g(int x)
{
    Contract.Requires(x >= 0);
    Contract.Ensures(Contract.Result<int>() == Contract.OldValue(x) * Contract.OldValue(x));
 
    int j = 0;
    for (int i = 0; i < x; i++)
        j += x;
 
    Contract.Assume(j == x * x);
    return j;
}








这篇关于Contract.Ensures(Contract.Result&lt; int&gt;()==(x * x));的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-26 23:14