Что такое управляемый и неуправляемый код в C#?
Управляемый код
«Управляемый код — это код, разработанный с использованием платформы .NET и поддерживаемых ею языков программирования, таких как C# или VB.NET. Управляемый код напрямую выполняется средой общего языка (CLR или Runtime), а его жизненный цикл, включая создание объекта, выделение памяти и удаление объекта, управляется средой выполнения. Любой язык программирования для .NET Framework, создаёт управляемый код».
Неуправляемый код
Код, разработанный за пределами платформы .NET, называется неуправляемым кодом.
«Приложения, которые не работают под управлением CLR, называются неуправляемыми. Создание, выполнение и удаление неуправляемого кода объекта напрямую управляется программистами его создавшими. Если программисты пишут плохой код, это может привести к утечкам памяти и нежелательному распределению ресурсов».
.NET Framework предоставляет механизм использования неуправляемого кода в управляемом коде и наоборот. Это достигается с помощью классов-обёрток.