Почему структура System.DateTime имеет тип компоновки Auto?

СтруктураSystem.DateTime и его двоюродный братSystem.DateTimeOffset их тип структуры размещения установлен на "Авто". Это можно увидеть с помощью:

typeof(DateTime).IsAutoLayout    /* true */

или же:

typeof(DateTime).StructLayoutAttribute.Value    /* Auto */

или это видно из IL, который заявляет:

.class public auto ansi serializable sealed beforefieldinit System.DateTime
              ¯¯¯¯

Обычно структура (то есть тип значения .NET, который не является перечислением), написанный на C #, будет иметь макет «Последовательный» (если толькоStructLayoutAttribute был применен для указания другого макета).

Я искал некоторые общиеBCL сборки иDateTime а такжеDateTimeOffset были единственными публично видимыми структурами, которые я нашел с этим макетом.

Кто-нибудь знает почемуDateTime имеет эту необычную структуру структуры?

Ответы на вопрос(1)

Ваш ответ на вопрос