Существует большая информация о новых возможностях и классах в новых 4.0 однако существуют также изменения, которые могут влиять на существующие приложения, например
Промежуток теперь реализует IFormattable и старую строку. Формат () с недопустимыми опциями выдаст исключение вместо того, чтобы назвать простой ToString (). Однако команда CLR обеспечивает хорошую функцию для включения поведения из предыдущей версии с параметром конфигурации - TimeSpan_LegacyFormatMode.
Доступ к событиям в классе, где они объявляются с помощью + = или - =, будет вести для вызова, добавляют/удаляют сгенерированные средства доступа тот возврат пусто. Некоторый код даже не скомпилирует в 4,0.
CAS удерживается от использования и включить его один все еще потребность использовать специальную установку в конфигурации - NetFx40_LegacySecurityPolicy
Так интересно, каковы другие изменения, и действительно ли возможно найти, по крайней мере, первоначальный перечень изменений, которые будут или могут повредить существующую функциональность с выпуском.NET 4.0?
Группа документации языков публикует отдельные документы для критических изменений C # и VB:
VB: http://msdn.microsoft.com/ en-us / library / cc714070% 28VS.100% 29.aspx
C #: http://msdn.microsoft.com/en-us/library/ee855831%28VS.100%29.aspx
Я написал C # one и включил изменения, нарушающие ковариацию и контравариантность, упомянутые Эриком Липпертом, и изменения событий, обсужденные Крисом Берроузом. Также есть некоторые критические изменения в отношении необязательных параметров, встроенных типов взаимодействия и вывода типа группы методов.
Обновление:
Еще один полезный документ (от группы документации .NET): http://msdn.microsoft.com/en-us/library/ee941656%28VS.100%29.aspx
Ковариантные и контравариантные преобразования вносят некоторые неясные, но возможные критические изменения при перекомпиляции:
Группа обучения пользователей C # составляет список известных потенциальных критических изменений в новой версии компилятора, см. ответ выше для подробностей.
Чтобы добавить к списку, вот официальный список ASP.Net для RC , я еще не встречал RTM.
Также обратите внимание, что SmtpClient теперь реализует IDisposable, поэтому теперь вы должны использовать что-то вроде этого:
using (var smtpclient = new SmtpClient())
{
smtpclient.Send(message);
}
Согласно этой странице внутри .NET 4.0 может быть больше таких «скрытых замятий». фреймворк. И автор предлагает найти их, используя FxCop в вашем коде.