C # Абстрактный класс - PullRequest
0 голосов
/ 10 июня 2018

Компилятор компилирует абстрактный класс в C #?

Если да, то как компилятор обрабатывает абстрактный класс, как обычный класс, или есть какая-то разница.

И если нет, токак это позволяет наследовать члены-данные и функцию-член абстрактного класса в производном классе.

1 Ответ

0 голосов
/ 10 июня 2018

Абстрактный класс действительно ведет себя как обычный класс в 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 одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...