次の方法で共有


OpCodes.Cpobj フィールド

オブジェクトのアドレス (&* 、または natural int の各型) にある値型をコピー先のオブジェクトのアドレス (&* 、または natural int の各型) にコピーします。

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

解説

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

形式 アセンブリ形式 説明
70 < T > cpobj classTok コピー元のオブジェクトからコピー先のオブジェクトに値型をコピーします。

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

  1. コピー先のオブジェクト参照がスタックにプッシュされます。
  2. コピー元のオブジェクト参照がスタックにプッシュされます。
  3. スタックから 2 つのオブジェクト参照がポップされます。コピー元のオブジェクトのアドレスの値型がコピー先のオブジェクトのアドレスにコピーされます。

コピー元およびコピー先のオブジェクト参照が、クラス トークン classTok (typeref または typedef) によって表されるクラスのインスタンスへのポインタではない場合、または classTok が値型を表していない場合、 cpobj の動作は指定されません。

無効なアドレスが検出されると、 NullReferenceException がスローされることがあります。

cpobj オペコードを使用できる 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 名前空間