.NET値型のフィールドの正確な順序を決定する際に、ILDASMツリービューとILDASM「MetaInfo」(つまり、実際のIL)の両方を調べました。データの2つのビューのフィールドの順序は逆です。
たとえば、System.Runtime.InteropServices.FILETIMEのツリービューには、dwLowDateTimeの前にdwHighDateTimeが一覧表示されます。(私は画像を投稿しますが、そうするのに十分な評判ポイントがここにありません)。
一方、View >> MetaInfo >> Show!を使用した対応するILは次のとおりです。ILDASMで:
TypeDef#1655(02000678)
TypDefName: System.Runtime.InteropServices.FILETIME (02000678)
Flags : [Public] [SequentialLayout] [Class] [Sealed] [AnsiClass] [BeforeFieldInit] (00100109)
Extends : 02000009 [TypeDef] System.ValueType
Field #1 (04001e2e)
-------------------------------------------------------
Field Name: dwLowDateTime (04001E2E)
Flags : [Public] (00000006)
CallCnvntn: [FIELD]
Field type: I4
Field #2 (04001e2f)
-------------------------------------------------------
Field Name: dwHighDateTime (04001E2F)
Flags : [Public] (00000006)
CallCnvntn: [FIELD]
Field type: I4
...
正しい順序はどれですか?ILは正しいと思いますが、確認をお願いします。この格差の理由を知っている人はいますか?