次の方法で共有


OpCodes.Mkrefany フィールド

特定の型のインスタンスへの型指定された参照を評価スタックにプッシュします。

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

解説

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

形式 アセンブリ形式 説明
C6 < T > mkrefany class class 型の型指定された参照をスタックにプッシュします。

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

  1. データの一部へのポインタがスタックにプッシュされます。
  2. ポインタがポップされ、 class 型の型指定された参照に変換されます。
  3. 型指定された参照がスタックにプッシュされます。

mkrefany 命令は、動的に型指定された参照を渡す処理をサポートしています。ポインタは、 &* 、または natural int の各型である必要があり、データの一部の有効なアドレスを保持します。 Class は、ポインタによって参照されているデータの型を記述しているクラス トークンです。 Mkrefany は、型指定された参照をスタックにプッシュし、ポインタと class 型の非透過の記述子を提供します。

型指定された参照について許可されている唯一の有効な演算は、型指定された参照をパラメータとして必要とするメソッドに型指定された参照を渡すことです。呼び出し先は、次に Refanytype 命令と Refanyval 命令を使用して、それぞれ型 (クラス) とアドレスを取得します。

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

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