合同确保 GUID 未经验证

发布于 2024-10-12 04:32:41 字数 408 浏览 1 评论 0原文

我有一个未经证实的保证: !ReferenceEquals(Contract.Result(), null) 该合同位于一个接口上,我无法控制

我的实现,就像这样,

    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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遇见了你 2024-10-19 04:32:41

看起来这是与泛型类型的交互。如果您将类型修复为 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文