>>Well, I am all for respecting contracts that you sign, but I don't think that IWhathever, in itself, enforces keeping the contract. >- interfaces can be very useful, but they are not enforcing contracts, just because they do not have implementation.
The contract *is* enforced when you use an Interface. It will not compile if you do not implement the properties/methods indicated by the Interface. That's what enforces the contract.