OpCodes.Brtrue フィールド


valuetrue、null 以外、または 0 以外の場合は、ターゲット命令に制御を転送します。Transfers control to a target instruction if value is true, not null, or non-zero.

public: static initonly System::Reflection::Emit::OpCode Brtrue;
public static readonly System.Reflection.Emit.OpCode Brtrue;
 staticval mutable Brtrue : System.Reflection.Emit.OpCode
Public Shared ReadOnly Brtrue As OpCode 



次の表は、命令の16進形式と Microsoft 中間言語 (MSIL) のアセンブリ形式と、簡単なリファレンスの概要を示しています。The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

FormatFormat アセンブリ形式Assembly Format 説明Description
3A < int32 >3A < int32 > brtrue targetbrtrue target

brinst targetbrinst target
0以外 (true) の場合は、指定されたオフセットでターゲット命令に分岐します。Branch to a target instruction at the specified offset if non-zero (true).

スタックの移行動作は、次の順序で実行されます。The stack transitional behavior, in sequential order, is:

  1. value は、前の操作によってスタックにプッシュされます。value is pushed onto the stack by a previous operation.

  2. value がスタックからポップされます。valuetrue場合は targetに分岐します。value is popped from the stack; if value is true, branch to target.

brtrue 命令は、value (型 native int) が0以外 (true) の場合に、指定されたターゲット命令に制御を転送します。The brtrue instruction transfers control to the specified target instruction if value (type native int) is nonzero (true). value がゼロ (false) の場合は、次の手順で実行が続行されます。If value is zero (false) execution continues at the next instruction.

value がオブジェクト参照 (型 O) の場合、brinst (brtrueの別名) は、オブジェクトのインスタンスを表す場合 (たとえば、null オブジェクト参照ではない場合) に制御を転送します。 Ldnullを参照してください。If value is an object reference (type O) then brinst (an alias for brtrue) transfers control if it represents an instance of an object (for example, if it is not the null object reference; see Ldnull).

ターゲット命令は、現在の命令に続く命令の先頭からの4バイト符号付きオフセットとして表されます。The target instruction is represented as a 4-byte signed offset from the beginning of the instruction following the current instruction.

ターゲット命令に1つ以上のプレフィックスコードがある場合、control はこれらのプレフィックスの最初の部分にのみ転送できます。If the target instruction has one or more prefix codes, control can only be transferred to the first of these prefixes. trycatchfilter、および finally ブロックとの間での転送の制御は、この命令では実行できません。Control transfers into and out of try, catch, filter, and finally blocks cannot be performed by this instruction.

次の Emit メソッドオーバーロードは、brtrue オペコードを使用できます。The following Emit method overload can use the brtrue opcode: