value が true 、null 以外、または 0 以外の場合は、ターゲット命令に制御を転送します。
Public Shared ReadOnly Brtrue As OpCode
[C#]
public static readonly OpCode Brtrue;
[C++]
public: static OpCode Brtrue;
[JScript]
public static var Brtrue : OpCode;
解説
命令の 16 進数の形式、MSIL (Microsoft Intermediate Language) アセンブリ形式、および簡単な説明の一覧を次の表に示します。
形式 | アセンブリ形式 | 説明 |
---|---|---|
3A < int32 > | brtrue target
brinst target |
0 以外 (true) の場合は、指定したオフセットでターゲット命令に分岐します。 |
スタックの遷移動作を順番に示すと、次のようになります。
- 直前の演算によって value がスタックにプッシュされます。
- value がスタックからポップされます。value が true の場合は、target に分岐します。
brtrue 命令は、value (natural int 型) が 0 以外 (true) の場合に指定したターゲット命令に制御を転送します。value が 0 (false) である場合は、次の命令で実行が継続されます。
value がオブジェクト参照 (O 型) である場合は、そのオブジェクト参照がオブジェクトのインスタンスを表していれば (たとえば、null オブジェクト参照ではない場合は Ldnull を参照)、 brinst (brtrue のエイリアス) が制御を転送します。
ターゲット命令は、現在の命令に続く次の命令の先頭からの 4 バイト符号付きオフセットとして表されます。
ターゲット命令に 1 つ以上のプリフィックス コードがある場合は、最初のプリフィックスだけに制御を転送できます。この命令では、try、catch、filter、finally の各ブロックの内外への制御の転送は実行できません。
brtrue オペコードを使用できる Emit コンストラクタ オーバーロードを次に示します。
- ILGenerator.Emit(OpCode, Label)
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ