Контракт кода, который гарантирует, что все предметы в коллекции одинаковы
Как создать постусловие, обеспечивающее одинаковость всех элементов в коллекции?
Я думал об использовании этого решения, но я не уверен, может ли это вызвать нежелательные побочные эффекты, или это будет неправильное использование контрактов кода.
1 ответ
Решение
Похоже, что связанный код не имеет побочных эффектов, так что я бы не беспокоился об этом. Я рекомендую поместить код, который проверяет условие "все равно", в свою (чистую) функцию, и просто вызвать его.
Contract.Ensures(AllEqual(myEnumeration));
Это означает, что AllEqual должен быть по крайней мере таким же видимым, как и сам ваш метод, но я думаю, что он сделает все чище.