Weitere ähnliche Inhalte
Ähnlich wie Lyntale: MS Code Contracts (20)
Kürzlich hochgeladen (20)
Lyntale: MS Code Contracts
- 8. “Unless design by contract evokes images of curly hair and a French landmark in your head, you got it wrong.”
- 10. a better contract what does it expect? what does it guarantee? what does it maintain?
- 11. dbc tenets > prerequisites > postconditions > invariants
- 28. rewritten to T Pop() { if (__ContractsRuntime.insideContractEvaluation <= 4) { try { __ContractsRuntime.insideContractEvaluation++; __ContractsRuntime.Requires(!this.IsEmpty, null, "!IsEmpty"); } finally { __ContractsRuntime.insideContractEvaluation--; } } return this._list.RemoveLast<T>(); }
- 31. rewritten to void Push(T t) { this._list.Add(t); if (__ContractsRuntime.insideContractEvaluation <= 4) { try { __ContractsRuntime.insideContractEvaluation++; __ContractsRuntime.Ensures(!this.IsEmpty, null, "!IsEmpty"); } finally { __ContractsRuntime.insideContractEvaluation--; } } }
- 37. a stricter contract T Pop() { Contract.Requires(!IsEmpty); Contract.Ensures(Count < Contract.OldValue(Count)); Contract.Ensures(Contract.Result<T>() .Equals(Contract.OldValue(Top()))); return _list.RemoveLast(); }
- 43. a stricter contract T Pop() requires !IsEmpty; ensures Count > old(Count); ensures result == old(Top()); { return _list.RemoveLast(); }