我有一个永远不会返回空对象的方法。我想澄清一下,这样我的 API 的用户就不必编写如下代码:
if(Getxyz() != null)
{
// do stuff
}
我该如何表达这个意图?
不幸的是,没有办法内置到 C# 中
您可以记录这一事实,但这不会被自动检查。
如果您使用 resharper,则可以将其设置为在方法标记有 [NotNull] 属性时正确检查这一点。
否则你可以使用微软合同库并将类似于以下内容的内容添加到您的方法中,但对于这样一个简单的注释来说,这是相当多的额外措辞。
Contract.Ensures(Contract.Result<string>() != null)
Spec# 通过允许 ! 解决了这个问题在类型之后将其标记为非空类型,例如
string! foo
但 Spec# 只能用于针对 .NET2,并且已被 Code Contracts 库取代。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)