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

前端之家收集整理的这篇文章主要介绍了c# – 使用代码合同指定返回值可能为null前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有明确规定使用代码合约返回值可以为空的方法

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

解决方法

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

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

猜你在找的C#相关文章