16

構造体System.DateTimeとそのいとこSystem.DateTimeOffsetの構造体レイアウトの種類は「自動」に設定されています。これは次のように表示できます。

typeof(DateTime).IsAutoLayout    /* true */

また:

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

または、次のように宣言する IL から確認できます。

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

通常、C# で記述された構造体 (つまり、列挙型ではない .NET 値の型) のレイアウトは "Sequential" になります (StructLayoutAttribute別のレイアウトを指定するために a が適用されていない場合)。

いくつかの一般的なBCLアセンブリを検索したところ、このレイアウトで見つかった公開されている構造体は と だけでしたDateTimeDateTimeOffset

なぜDateTimeこの珍しい構造体レイアウトがあるのか​​ 誰にも分かりますか?

4

1 に答える 1