这是一个非常笼统的想法,但让我们在此示例中使用 C#。

鉴于

  • 我有一个一次性类 Foo ,即它实现了 IDisposable
  • Foo 有一个 bool 标志 disposed false 直到 Dispose 被调用,之后它是 true
  • 如果 Foo,则所有 ObjectDisposedException 的公共(public)方法在调用时都会抛出 disposed

  • 有没有这个说法



    描述 Foo 的不变量?

    最佳答案

    不。

    这是类的所有方法通用的一组规则。不变量不是方法的规则。

    契约(Contract)设计包括定义契约(Contract)的以下部分:

  • 方法前提条件
  • 方法后置条件
  • 类不变

  • 您所描述的是方法后置条件。它们属于每个函数的契约(这当然是类契约的一部分),但不属于类不变量。

    关于computer-science - 这个语句可以被视为类不变量吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8350238/

    10-13 00:11