Is there any way using Code Contracts to ensure/check that a method does not change any members of an object, similarly to C++ const
methods or setting all the members to readonly
?
i.e. a simpler way than the following:
Contract.Ensures(this.member1 == Contract.OldValue(this.member1));
Contract.Ensures(this.member2 == Contract.OldValue(this.member2));
Contract.Ensures(this.member3 == Contract.OldValue(this.member3));
Contract.Ensures(this.member4 == Contract.OldValue(this.member4));
Contract.Ensures(this.member5 == Contract.OldValue(this.member5));
or the same using Contract.EnsuresOnThrow
.