合同确保 GUID 未经验证
我有一个未经证实的保证: !ReferenceEquals(Contract.Result
该合同位于一个接口上,我无法控制
我的实现,就像这样,
public Guid Blah()
{
var guid = Guid.NewGuid();
if(ReferenceEquals(guid, null))
{
throw new ApplicationException("This shoul");
}
return guid;
}
我厌倦了合同假设,而不是 if 和上面代码的一些变体,但仍然收到警告,有什么想法吗? 干杯
I m having a ensures unproven: !ReferenceEquals(Contract.Result<T>(), null)
that contract is on an interface I have no control of
my implementation is something like this
public Guid Blah()
{
var guid = Guid.NewGuid();
if(ReferenceEquals(guid, null))
{
throw new ApplicationException("This shoul");
}
return guid;
}
I tired with contract assumes instead of the if and some variations of the code above, but still getting the warning, any ideas?
Cheers
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看起来这是与泛型类型的交互。如果您将类型修复为
Guid
,它就可以正常工作...我认为这是代码合同中的一个错误,所以我已提交 代码合约论坛上的问题。Seems like this is an interaction with the generic types. If you fix the type to
Guid
it works fine... I think this is a bug in Code Contracts, so I've filed a question on the Code Contracts forum.