Обновлен ли весь .NET для использования контрактов? - PullRequest
4 голосов
/ 07 марта 2011

С момента введения Контрактов в .NET 4.0 мне интересно, распространяла ли Microsoft это всем своим классам, как в BCL?

Если нет, то почему?Такая функция имеет смысл, только если она поддерживается в стандартной библиотеке по умолчанию, верно?

Ответы [ 2 ]

2 голосов
/ 07 марта 2011

Нет кодовых контрактов не было добавлено ко всем BCL.Многие из наиболее распространенных классов добавили аннотацию, но вся BCL - нет.

Основная причина здесь - время.BCL огромен, и добавление правильных Контрактов ко всем BCL является массовым обязательством.И результат, в настоящее время, приносит пользу только небольшому подмножеству пользователей .Net.Если популярность контрактов возрастет, то я уверен, что их использование в рамках BCL также будет расти (да, я понимаю, что отсутствие одного контракта делает другой менее вероятным)

Эта проблема смягчается, хотя пользователи могут декларировать пользовательскиеКонтрактные сборки.Это позволяет им пост-аннотировать типы, которые были пропущены, и добираться до точки, где их кодовая база является чистой с точки зрения контрактов.

2 голосов
/ 07 марта 2011

Не все БКЛ.

Учтите, что Code Contracts еще не полностью встроены в IDE и язык; это отдельная загрузка. Несомненно, когда он достигнет большего проникновения разработчиков, большей интеграции с IDE и полной аннотации BCL, мы увидим, что он предлагается «из коробки».

...