Если речь идет о платформе .NET, то полноценную поддержку контрактов обеспечивает только библиотека Code Contracts. Причем в ней поддерживаются практически все возможности, представленные в парадигме Design by Contract ее разработчиком (Бертраном Мейером), единственное, чего в ней нет, так это инвариантов циклов, но в .NET-е это не актуально.
Других библиотек, которые поддерживают контрактное программирование на том же уровне - нет, и, скорее всего, не будет. Code Contracts используется внутри Майкрософта, в частности разработчиками BCL и многих других инструментов, поэтому мы с вами, как пользователи этого всего дела можем использовать контракты стандартных типов BCL, таких как коллекции, всякие стринг билдеры и другое.
Негативного влияния на производительность практически нет, а вот негативное влияние на время компиляции присутствует. В целом, тема интересная, ну а подробности будут на конференции.
четверг, 22 марта 2012 г. 8:37:27 UTC+2 пользователь Ramil Kadraliev написал: