Старый проверочный код обычно проверяет логическое условие и выдает исключение, если оно истинно.
Вместо этого Contract.Requires(...)
делает обратное (чтобы пройти проверку, нам нужно отменить старое условие).
Я перефразирую старый код и иногда вижу некоторые довольно сложные логические выражения, инвертировать их не так просто, и просто делать Contract.Requires(!(*old statements*))
кажется плохим и очень запутанным.
Если в нем что-то естькак Contract.RequiresNot()
рефакторинг будет гораздо более понятным и понятным.
Мы также не можем добавить метод статического расширения.Если кто-то сталкивался с этой проблемой и нашел какое-то хорошее решение, я хотел бы услышать это.