O que torna a classe ValueType especial?

Quando estou tentando definir uma classe que herda deSystem.ValueType ouSystem.Enum classe, estou recebendo um erro:

Cannot derive from special class System.ValueType

Eu entendo esse erro, mas o que eu não conseguia entender é o que fazValueType classeespecial? Quero dizer, não há palavra-chave (comosealed) ou atributo para especificar que essa classe não pode ser herdada.ValueType tem dois atributos,Serializable eComVisible mas nenhum deles é relevante para esse caso.documentação diz:

Embora ValueType seja a classe base implícita para tipos de valor,você não pode criar uma classe que herda diretamente do ValueType. Em vez disso, os compiladores individuais fornecem uma palavra-chave ou um construto de linguagem (como struct em C # e Structure… End Structure no Visual Basic) para oferecer suporte à criação de tipos de valor.

Mas isso não responde à minha pergunta. Então, minha pergunta é como o compilador é informado nesse caso? O compilador verifica diretamente se a classe éValueType ouEnum quando tento criar uma classe que herda de uma classe?

Edit: Também todas as estruturasimplicitly herdar deValueType, masEnum classeExplicitamente herdar deValueType, então como está funcionando? Como o compilador descobre essa situação, tudo isso é codificado pelo compilador?

questionAnswers(3)

yourAnswerToTheQuestion