IMetaDataEmit::SetClassLayout 方法
完成先前呼叫 DefineTypeDef 方法所定義之類別的欄位配置。
語法
HRESULT SetClassLayout (
[in] mdTypeDef td,
[in] DWORD dwPackSize,
[in] COR_FIELD_OFFSET rFieldOffsets[],
[in] ULONG ulClassSize
);
參數
td
[in] 指定要配置之類別的 mdTypeDef
語彙基元。
dwPackSize
[in] 封裝大小:1、2、4、8 或 16 個位元組。 封裝大小是相鄰欄位之間的位元組數目。
rFieldOffsets
[in] COR_FIELD_OFFSET 結構的陣列,每個結構都會指定類別的欄位,以及類別內的欄位位移。 使用 mdTokenNil
終止陣列。
ulClassSize
[in] 類別大小,以位元組為單位。
備註
類別一開始由呼叫 IMetaDataEmit::DefineTypeDef 方法所定義,並為類別的欄位指定三個配置之一:自動、循序或明確。 一般而言,建議您使用自動配置,並讓執行階段選擇配置欄位的最佳方式。
不過,您可能會想根據非受控程式碼所使用的排列方式來配置欄位。 在此情況下,請選擇循序或明確配置,並呼叫 SetClassLayout
以完成欄位的配置:
循序配置:指定封裝大小。 欄位會根據其自然大小或封裝大小 (視何者產生較小的欄位位移) 來對齊。 將
rFieldOffsets
和ulClassSize
設定為零。明確配置:指定每個欄位的位移,或指定類別大小和封裝大小。
規格需求
平台:請參閱系統需求。
標頭:Cor.h
程式庫:作為 MSCorEE.dll 中的資源使用
.NET Framework版本:自 1.0 起可用