Контракт кода, который гарантирует, что все предметы в коллекции одинаковы

Как создать постусловие, обеспечивающее одинаковость всех элементов в коллекции?

Я думал об использовании этого решения, но я не уверен, может ли это вызвать нежелательные побочные эффекты, или это будет неправильное использование контрактов кода.

1 ответ

Решение

Похоже, что связанный код не имеет побочных эффектов, так что я бы не беспокоился об этом. Я рекомендую поместить код, который проверяет условие "все равно", в свою (чистую) функцию, и просто вызвать его.

Contract.Ensures(AllEqual(myEnumeration));

Это означает, что AllEqual должен быть по крайней мере таким же видимым, как и сам ваш метод, но я думаю, что он сделает все чище.

Другие вопросы по тегам