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

有没有明确规定使用代码合约返回值可以为空的方法

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

解决方法

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

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

相关文章

原文地址:http://msdn.microsoft.com/en-us/magazine/cc163...
前言 随着近些年微服务的流行,有越来越多的开发者和团队所采...
最近因为比较忙,好久没有写博客了,这篇主要给大家分享一下...
在多核CPU在今天和不久的将来,计算机将拥有更多的内核,Mic...
c语言输入成绩怎么判断等级
字符型数据在内存中的存储形式是什么