gpt4 book ai didi

c# - "Contract can' t be in try block”是什么意思?

转载 作者:太空狗 更新时间:2023-10-29 21:11:07 24 4
gpt4 key购买 nike

我正在为 Microsoft 代码契约(Contract)使用 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 block 中的错误 18 契约(Contract)部分

更新:

在你的帮助下我弄明白了:

  • 移至顶部
  • 检查 Contract.Result

    Contract.Ensures(Contract.Result() != null, "object must not be 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 调用留在方法的顶部,您就不会遇到任何问题。

关于c# - "Contract can' t be in try block”是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2883572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com