C# Абстрактный класс
Компилятор компилирует абстрактный класс в C#?
Если да, то как компилятор обрабатывает абстрактный класс, как обычный класс, или есть какая-то разница.
И если нет, то как разрешить наследование членов-данных и функции-члена абстрактного класса в производном классе.
1 ответ
Абстрактный класс действительно ведет себя как нормальный класс в 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 одновременно.