Абстрактный класс действительно ведет себя как обычный класс в IL, единственное отличие состоит в добавленном abstract
флаге / ключевом слове.
Общий открытый класс в IL выглядит следующим образом (без тела)
.class public auto ansi beforefieldinit
NAMESPACE.CLASS_NAME
extends [mscorlib]System.Object
абстрактный класс выглядит следующим образом
.class public abstract auto ansi beforefieldinit
NAMESPACE.CLASS_NAME
extends [mscorlib]System.Object
Я могу порекомендовать вам создавать тестовые сборки и просматривать их с помощью dotPeek из JetBrains (это бесплатный инструмент).Вы можете просматривать код и код IL одновременно.