Computer science 这个语句可以被视为类不变量吗?

Computer science 这个语句可以被视为类不变量吗?,computer-science,semantics,design-by-contract,invariants,Computer Science,Semantics,Design By Contract,Invariants,这是一个非常普遍的想法,但让我们在本例中使用C 鉴于此 我有一个一次性类Foo,即它实现了IDisposable Foo有一个布尔标志disposed,该标志为false,直到调用Dispose,之后为true 调用Foo的所有公共方法时,如果disposed为true,则抛出ObjectDisposedException 这句话怎么说 当对已处理的Foo实例调用Foo时,除Dispose之外的任何Foo方法都将抛出ObjectDisposedException 描述Foo?否的不变量 这是

这是一个非常普遍的想法,但让我们在本例中使用C

鉴于此

  • 我有一个一次性类
    Foo
    ,即它实现了
    IDisposable
  • Foo
    有一个布尔标志
    disposed
    ,该标志为false,直到调用
    Dispose
    ,之后为true
  • 调用
    Foo
    的所有公共方法时,如果
    disposed
    true,则抛出
    ObjectDisposedException
这句话怎么说

当对已处理的
Foo
实例调用
Foo
时,除
Dispose
之外的任何
Foo方法都将抛出
ObjectDisposedException

描述
Foo

否的不变量

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

合同设计包括定义合同的以下部分:

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

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

它不是一个不变量。它是关于对象状态的陈述。在我看来,您描述的是dispose方法的后置条件和所有方法的后置条件