次の方法で共有


OpCodes.Stobj フィールド

評価スタックから提供されたメモリ アドレスに、指定した型の値をコピーします。

Public Shared ReadOnly Stobj As OpCode
[C#]
public static readonly OpCode Stobj;
[C++]
public: static OpCode Stobj;
[JScript]
public static var Stobj : OpCode;

解説

命令の 16 進数の形式、MSIL (Microsoft Intermediate Language) アセンブリ形式、および簡単な説明の一覧を次の表に示します。

形式 アセンブリ形式 説明
81 < T > stobj class class 型の値をスタックからメモリに格納します。

スタックの遷移動作を順番に示すと、次のようになります。

  1. アドレスがスタックにプッシュされます。
  2. class 型の値型オブジェクトがスタックにプッシュされます。
  3. オブジェクトとアドレスがスタックからポップされます。値型オブジェトがアドレスに格納されます。

stobj 命令は、アドレス(natural int* 、または & の各型のポインタ) によって指定されたアドレスに、値型オブジェクトをコピーします。コピーされるバイト数は、値型を表すメタデータ トークンである class によって表されたクラスのサイズに依存します。

stobj 命令の演算は、直前に Volatile プリフィックス命令または Unaligned プリフィックス命令を付けることによって変更できます。

クラスが見つからない場合は、 TypeLoadException がスローされます。これは、通常、実行時ではなく、MSIL (Microsoft Intermediate Language) 命令がネイティブ コードに変換されるときに検出されます。

stobj オペコードを使用できる Emit コンストラクタ オーバーロードを次に示します。

  • ILGenerator.Emit(OpCode, Type)

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

OpCodes クラス | OpCodes メンバ | System.Reflection.Emit 名前空間