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

メソッド本体の属性。

戻り値

メソッド本体ストリーム内のエンコードされた本体のオフセット。

例外

codeSizeexceptionRegionCount、または maxStack が許容範囲外です。

適用対象

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

メソッドが動的ローカル メモリ プールから割り当てられる場合 (IL には localloc 命令) は true。それ以外の場合は false

戻り値

メソッド本体ストリーム内のエンコードされた本体のオフセット。

例外

codeSizeexceptionRegionCount、または maxStack が許容範囲外です。

適用対象