Computer science 这个语句可以被视为类不变量吗?
这是一个非常普遍的想法,但让我们在本例中使用C 鉴于此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?否的不变量 这是
- 我有一个一次性类
,即它实现了Foo
IDisposable
有一个布尔标志Foo
,该标志为false,直到调用disposed
,之后为trueDispose
- 调用
的所有公共方法时,如果Foo
为true,则抛出disposed
ObjectDisposedException
Foo
实例调用Foo
时,除Dispose
之外的任何Foo方法都将抛出ObjectDisposedException
描述Foo
?否的不变量
这是类中所有方法通用的一组规则。不变量不是方法的规则
合同设计包括定义合同的以下部分:
- 方法前提条件
- 方法后置条件
- 类不变量
您所描述的是方法后条件。它们属于每个函数的约定(当然是类约定的一部分),但不属于类不变量。它不是一个不变量。它是关于对象状态的陈述。在我看来,您描述的是dispose方法的后置条件和所有方法的后置条件