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 以完成欄位的配置:

  • 循序配置:指定封裝大小。 欄位會根據其自然大小或封裝大小 (視何者產生較小的欄位位移) 來對齊。 將 rFieldOffsetsulClassSize 設定為零。

  • 明確配置:指定每個欄位的位移,或指定類別大小和封裝大小。

規格需求

平台:請參閱系統需求

標頭:Cor.h

程式庫:作為 MSCorEE.dll 中的資源使用

.NET Framework版本:自 1.0 起可用

另請參閱