MethodBodyStreamEncoder.AddMethodBody 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
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)
編碼方法主體,並將它新增到方法主體資料流。
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)
編碼方法主體並將它新增至方法主體資料流,使用提供的指令編碼器、最大堆疊大小、區域變數的簽章控制代碼、方法主體屬性,以及允許以指出方法是否應從動態本機記憶體集區配置。
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)
編碼方法主體並將它新增至方法主體資料流,使用提供的程式碼大小、最大堆疊大小、例外狀況區域的數目、區域變數的簽章控制代碼、方法主體屬性,以及允許以指出例外狀況區域是否應以小型格式編碼。
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
方法主體屬性。
傳回
已編碼主體在方法主體資料流中的位移。
例外狀況
codeSize
、exceptionRegionCount
或 maxStack
超出允許的範圍。
適用於
AddMethodBody(Int32, Int32, Int32, Boolean, StandaloneSignatureHandle, MethodBodyAttributes, Boolean)
編碼方法主體並將它新增至方法主體資料流,使用提供的程式碼大小、最大堆疊大小、例外狀況區域的數目、區域變數的簽章控制代碼、方法主體屬性、允許指出例外狀況區域是否應以小型格式編碼,以及允許以指出方法是否應該從動態本機記憶體集區配置。
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
。
傳回
已編碼主體在方法主體資料流中的位移。
例外狀況
codeSize
、exceptionRegionCount
或 maxStack
超出允許的範圍。