Меня по-настоящему увлекли кодовые контракты, представленные в .NET 4 (хотя и с помощью DevLabs). Но один мелкий шрифт меня немного охладил. Вот что он говорит:
Самым большим для меня является событие первый. Я не знаю, пишет ли кто-нибудь еще однопоточные приложения. Так что, если контракты кода не могут поддерживать многопоточность, я не вижу в них особой пользы. Или, может быть, мне не следует слишком сильно подчеркивать это, потому что постусловия предназначены для утверждения внутренних компонентов самого метода, которые могут быть протестированы на единицу.
Кстати, я ничего не нашел и не нашел » Я пытаюсь дизассемблировать мой код, чтобы увидеть, куда вводятся предварительные условия. Я полагаю, что в простом методе, когда сначала идет lock (), просто вводить проверки сразу после него, но в довольно сложном методе, когда блокировка происходит где-то посередине, это может быть проблемой. Или если используются другие механизмы, кроме lock ().