MethodBodyStreamEncoder.AddMethodBody 方法

定義

多載

AddMethodBody(InstructionEncoder, Int32, StandaloneSignatureHandle, MethodBodyAttributes)

編碼方法主體,並將它新增到方法主體資料流。

AddMethodBody(InstructionEncoder, Int32, StandaloneSignatureHandle, MethodBodyAttributes, Boolean)

編碼方法主體並將它新增至方法主體資料流,使用提供的指令編碼器、最大堆疊大小、區域變數的簽章控制代碼、方法主體屬性,以及允許以指出方法是否應從動態本機記憶體集區配置。

AddMethodBody(Int32, Int32, Int32, Boolean, StandaloneSignatureHandle, MethodBodyAttributes)

編碼方法主體並將它新增至方法主體資料流,使用提供的程式碼大小、最大堆疊大小、例外狀況區域的數目、區域變數的簽章控制代碼、方法主體屬性,以及允許以指出例外狀況區域是否應以小型格式編碼。

AddMethodBody(Int32, Int32, Int32, Boolean, StandaloneSignatureHandle, MethodBodyAttributes, Boolean)

編碼方法主體並將它新增至方法主體資料流,使用提供的程式碼大小、最大堆疊大小、例外狀況區域的數目、區域變數的簽章控制代碼、方法主體屬性、允許指出例外狀況區域是否應以小型格式編碼,以及允許以指出方法是否應該從動態本機記憶體集區配置。

AddMethodBody(InstructionEncoder, Int32, StandaloneSignatureHandle, MethodBodyAttributes)

來源:
MethodBodyStreamEncoder.cs
來源:
MethodBodyStreamEncoder.cs
來源:
MethodBodyStreamEncoder.cs

編碼方法主體,並將它新增到方法主體資料流。

public:
 int AddMethodBody(System::Reflection::Metadata::Ecma335::InstructionEncoder instructionEncoder, int maxStack, System::Reflection::Metadata::StandaloneSignatureHandle localVariablesSignature, System::Reflection::Metadata::Ecma335::MethodBodyAttributes attributes);
public int AddMethodBody (System.Reflection.Metadata.Ecma335.InstructionEncoder instructionEncoder, int maxStack, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes);
public int AddMethodBody (System.Reflection.Metadata.Ecma335.InstructionEncoder instructionEncoder, int maxStack = 8, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature = default, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals);
member this.AddMethodBody : System.Reflection.Metadata.Ecma335.InstructionEncoder * int * System.Reflection.Metadata.StandaloneSignatureHandle * System.Reflection.Metadata.Ecma335.MethodBodyAttributes -> int
Public Function AddMethodBody (instructionEncoder As InstructionEncoder, maxStack As Integer, localVariablesSignature As StandaloneSignatureHandle, attributes As MethodBodyAttributes) As Integer
Public Function AddMethodBody (instructionEncoder As InstructionEncoder, Optional maxStack As Integer = 8, Optional localVariablesSignature As StandaloneSignatureHandle = Nothing, Optional attributes As MethodBodyAttributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals) As Integer

參數

instructionEncoder
InstructionEncoder

指令編碼器。

maxStack
Int32

堆疊大小上限。

localVariablesSignature
StandaloneSignatureHandle

區域變數的簽章控制代碼。

attributes
MethodBodyAttributes

方法主體屬性。

傳回

已編碼主體在方法主體資料流中的位移。

例外狀況

instructionEncoder 有預設值。

maxStack 超出範圍 [0, UInt16.MaxValue]。

未標記指令資料流中分支的目標標籤,或分支指令與目標標籤之間的距離不符合指令運算元的大小。

適用於

AddMethodBody(InstructionEncoder, Int32, StandaloneSignatureHandle, MethodBodyAttributes, Boolean)

來源:
MethodBodyStreamEncoder.cs
來源:
MethodBodyStreamEncoder.cs
來源:
MethodBodyStreamEncoder.cs

編碼方法主體並將它新增至方法主體資料流,使用提供的指令編碼器、最大堆疊大小、區域變數的簽章控制代碼、方法主體屬性,以及允許以指出方法是否應從動態本機記憶體集區配置。

public int AddMethodBody (System.Reflection.Metadata.Ecma335.InstructionEncoder instructionEncoder, int maxStack = 8, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature = default, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals, bool hasDynamicStackAllocation = false);
member this.AddMethodBody : System.Reflection.Metadata.Ecma335.InstructionEncoder * int * System.Reflection.Metadata.StandaloneSignatureHandle * System.Reflection.Metadata.Ecma335.MethodBodyAttributes * bool -> int
Public Function AddMethodBody (instructionEncoder As InstructionEncoder, Optional maxStack As Integer = 8, Optional localVariablesSignature As StandaloneSignatureHandle = Nothing, Optional attributes As MethodBodyAttributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals, Optional hasDynamicStackAllocation As Boolean = false) As Integer

參數

instructionEncoder
InstructionEncoder

指令編碼器。

maxStack
Int32

堆疊大小上限。

localVariablesSignature
StandaloneSignatureHandle

區域變數的簽章控制代碼。

attributes
MethodBodyAttributes

方法主體屬性。

hasDynamicStackAllocation
Boolean

如果方法是從動態本機記憶體集區配置 (IL 包含 localloc 指令),則為 true;否則為 false

傳回

已編碼主體在方法主體資料流中的位移。

例外狀況

instructionEncoder 有預設值。

maxStack 超出範圍 [0, UInt16.MaxValue]。

未標記指令資料流中分支的目標標籤,或分支指令與目標標籤之間的距離不符合指令運算元的大小。

適用於

AddMethodBody(Int32, Int32, Int32, Boolean, StandaloneSignatureHandle, MethodBodyAttributes)

來源:
MethodBodyStreamEncoder.cs
來源:
MethodBodyStreamEncoder.cs
來源:
MethodBodyStreamEncoder.cs

編碼方法主體並將它新增至方法主體資料流,使用提供的程式碼大小、最大堆疊大小、例外狀況區域的數目、區域變數的簽章控制代碼、方法主體屬性,以及允許以指出例外狀況區域是否應以小型格式編碼。

public:
 System::Reflection::Metadata::Ecma335::MethodBodyStreamEncoder::MethodBody AddMethodBody(int codeSize, int maxStack, int exceptionRegionCount, bool hasSmallExceptionRegions, System::Reflection::Metadata::StandaloneSignatureHandle localVariablesSignature, System::Reflection::Metadata::Ecma335::MethodBodyAttributes attributes);
public System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder.MethodBody AddMethodBody (int codeSize, int maxStack, int exceptionRegionCount, bool hasSmallExceptionRegions, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes);
public System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder.MethodBody AddMethodBody (int codeSize, int maxStack = 8, int exceptionRegionCount = 0, bool hasSmallExceptionRegions = true, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature = default, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals);
member this.AddMethodBody : int * int * int * bool * System.Reflection.Metadata.StandaloneSignatureHandle * System.Reflection.Metadata.Ecma335.MethodBodyAttributes -> System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder.MethodBody
Public Function AddMethodBody (codeSize As Integer, maxStack As Integer, exceptionRegionCount As Integer, hasSmallExceptionRegions As Boolean, localVariablesSignature As StandaloneSignatureHandle, attributes As MethodBodyAttributes) As MethodBodyStreamEncoder.MethodBody
Public Function AddMethodBody (codeSize As Integer, Optional maxStack As Integer = 8, Optional exceptionRegionCount As Integer = 0, Optional hasSmallExceptionRegions As Boolean = true, Optional localVariablesSignature As StandaloneSignatureHandle = Nothing, Optional attributes As MethodBodyAttributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals) As MethodBodyStreamEncoder.MethodBody

參數

codeSize
Int32

要為指令保留的位元組數目。

maxStack
Int32

堆疊大小上限。

exceptionRegionCount
Int32

例外狀況區域的數目。

hasSmallExceptionRegions
Boolean

如果例外狀況區域應該以小型格式編碼,則為 true;否則為 false

localVariablesSignature
StandaloneSignatureHandle

區域變數的簽章控制代碼。

attributes
MethodBodyAttributes

方法主體屬性。

傳回

已編碼主體在方法主體資料流中的位移。

例外狀況

codeSizeexceptionRegionCountmaxStack 超出允許的範圍。

適用於

AddMethodBody(Int32, Int32, Int32, Boolean, StandaloneSignatureHandle, MethodBodyAttributes, Boolean)

來源:
MethodBodyStreamEncoder.cs
來源:
MethodBodyStreamEncoder.cs
來源:
MethodBodyStreamEncoder.cs

編碼方法主體並將它新增至方法主體資料流,使用提供的程式碼大小、最大堆疊大小、例外狀況區域的數目、區域變數的簽章控制代碼、方法主體屬性、允許指出例外狀況區域是否應以小型格式編碼,以及允許以指出方法是否應該從動態本機記憶體集區配置。

public System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder.MethodBody AddMethodBody (int codeSize, int maxStack = 8, int exceptionRegionCount = 0, bool hasSmallExceptionRegions = true, System.Reflection.Metadata.StandaloneSignatureHandle localVariablesSignature = default, System.Reflection.Metadata.Ecma335.MethodBodyAttributes attributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals, bool hasDynamicStackAllocation = false);
member this.AddMethodBody : int * int * int * bool * System.Reflection.Metadata.StandaloneSignatureHandle * System.Reflection.Metadata.Ecma335.MethodBodyAttributes * bool -> System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder.MethodBody
Public Function AddMethodBody (codeSize As Integer, Optional maxStack As Integer = 8, Optional exceptionRegionCount As Integer = 0, Optional hasSmallExceptionRegions As Boolean = true, Optional localVariablesSignature As StandaloneSignatureHandle = Nothing, Optional attributes As MethodBodyAttributes = System.Reflection.Metadata.Ecma335.MethodBodyAttributes.InitLocals, Optional hasDynamicStackAllocation As Boolean = false) As MethodBodyStreamEncoder.MethodBody

參數

codeSize
Int32

要為指令保留的位元組數目。

maxStack
Int32

堆疊大小上限。

exceptionRegionCount
Int32

例外狀況區域的數目。

hasSmallExceptionRegions
Boolean

如果例外狀況區域應該以小型格式編碼,則為 true;否則為 false

localVariablesSignature
StandaloneSignatureHandle

區域變數的簽章控制代碼。

attributes
MethodBodyAttributes

方法主體屬性。

hasDynamicStackAllocation
Boolean

如果方法是從動態本機記憶體集區配置 (包含 localloc 指令),則為 true;否則為 false

傳回

已編碼主體在方法主體資料流中的位移。

例外狀況

codeSizeexceptionRegionCountmaxStack 超出允許的範圍。

適用於