Исходный код - это код, чья память не «управляется», как и в, память не освобождена для вас (например, C ++ «delete» и «C»), нет подсчета ссылок, нет сбора мусора. Управляемый код, как вы догадались, это код, чья память свободна и выделена для вас, сборка мусора и другие лакомства.
Смешанный код - это когда вы управляете кодом, который вызывает неуправляемый уровень. Обычно, когда у вас есть чистая неуправляемая C ++ DLL, и вы вызываете ее из .NET с помощью P / invoke.