这是一个高度笼统的想法,但让我们在此示例中使用 C#。
鉴于此
- 我有一个一次性类
Foo
,即,它实现了IDisposable
。 Foo
有一个 bool 标志disposed
在Dispose
被调用之前它是 false ,之后它是 正确。Foo
的所有公共(public)方法在被调用时如果disposed
为 true 将抛出ObjectDisposedException
。
这条语句是否
Any method of
Foo
, exceptDispose
, will throw anObjectDisposedException
when called on an instance ofFoo
that has been disposed.
描述Foo
的不变量?
最佳答案
没有。
这是一组对类的所有方法通用的规则。不变量不是方法的规则。
按契约(Contract)设计包括定义契约(Contract)的以下部分:
- 方法前提条件
- 方法后置条件
- 类不变
您所描述的是方法后置条件。它们属于每个函数的契约(这当然是类契约的一部分),但不属于类不变量。
关于computer-science - 这个语句可以被视为类不变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8350238/