c# – “契约不能在试块中”是什么意思?

前端之家收集整理的这篇文章主要介绍了c# – “契约不能在试块中”是什么意思?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用3.5库来进行微软代码合同
public object RetrieveById(int Id)
{    
    //stuff happens...
    Contract.Ensures(newObject != null,"object must not be null");
    return newProject;
    //No error message if I move the Contract.Ensures to here
    //But it isn't asserting/throwing a contract exception here either           
}

我收到编译器消息:
方法’Controller.RetrieveById(System.Int32)’中的try块中的错误18合同部分

更新:

我在你的帮助下想出来了:

>转到顶部
>检查Contract.Result

Contract.Ensures(Contract.Result()!= null,“object不能为null”);

解决方法

我可能会遗漏一些东西,但我只是看了一下这个文档:

http://msdn.microsoft.com/en-us/library/dd412865.aspx

它说:

This method call must be at the
beginning of a method or property,
before any other code.

因此,只需将Ensures调用放在方法的顶部,就不会出现任何问题.

原文链接:https://www.f2er.com/csharp/92843.html

猜你在找的C#相关文章