加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用代码合同指定返回值可能为null

发布时间:2020-12-15 04:01:02 所属栏目:百科 来源:网络整理
导读:有没有明确规定使用代码合约返回值可以为空的方法? 我担心的是,没有Contract.Ensures(Contract.Result object()!= null)的方法在将来可能会被错误地“固定”以包括后置条件,即使原始意图可能是允许null结果. 解决方法 如果有任何其他后期条件,那么这些将指
有没有明确规定使用代码合约返回值可以为空的方法?

我担心的是,没有Contract.Ensures(Contract.Result< object>()!= null)的方法在将来可能会被错误地“固定”以包括后置条件,即使原始意图可能是允许null结果.

解决方法

如果有任何其他后期条件,那么这些将指示null是有效的返回值.例如,如果方法应返回正值,但如果发生错误则使用null:
Contract.Ensures(Contract.Result<int?>() == null || 0 <= Contract.Result<int?>());

如果您担心回归,最佳解决方案可能是为预期的null返回值添加单元测试.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读