Статические библиотеки увеличивают размер кода в Вашем двоичном файле. Они всегда загружаются, и независимо от того, что версия кода, с которым Вы скомпилировали, является версией кода, который будет работать.
библиотеки Dynamic хранятся и имеющие версию отдельно. Для версии динамической библиотеки возможно быть загруженным, который не был исходным, который поставлялся с Вашим кодом , если обновление считают двоичным совместимый с исходной версией.
Дополнительно динамические библиотеки не обязательно загружаются - они обычно загружаются, когда сначала названный - и могут быть общие для компоненты, которые пользуются той же библиотекой (несколько загрузок данных, одна загрузка кода).
библиотеки Dynamic считались лучшим подходом большую часть времени, но первоначально у них был главный дефект (ад google DLL), который был почти устранен более свежим Windows OSes (Windows XP в особенности).
//
[DebuggerStepThrough]
static void DebuggerStepThroughInPartialClass()
{
WrappedClass.NonDebuggerStepThrough();
}
class WrappedClass{
static void NonDebuggerStepThroughInNewClass()
{
int bar = 0;
bar++;
}
}