OpCodes.Ldind_Ref Bidang
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Memuat referensi objek sebagai jenis O (referensi objek) ke tumpukan evaluasi secara tidak langsung.
public: static initonly System::Reflection::Emit::OpCode Ldind_Ref;
public static readonly System.Reflection.Emit.OpCode Ldind_Ref;
staticval mutable Ldind_Ref : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_Ref As OpCode
Nilai Bidang
Keterangan
Tabel berikut mencantumkan format rakitan heksadesimal dan Microsoft Bahasa Perantara (MSIL) instruksi, bersama dengan ringkasan referensi singkat:
| Format | Format Rakitan | Deskripsi |
|---|---|---|
| 50 | ldind.ref | Memuat referensi objek di alamat addr ke tumpukan sebagai jenis O |
Perilaku transisi tumpukan, dalam urutan berurutan, adalah:
Alamat didorong ke tumpukan.
Alamat muncul dari tumpukan; referensi objek yang terletak di alamat diambil.
Referensi yang diambil didorong ke tumpukan.
ldind.ref Instruksi secara tidak langsung memuat referensi objek alamat yang ditentukan (dari jenis native int, , &atau *) ke tumpukan sebagai jenis O.
ldind Semua instruksi adalah pintasan untuk Ldobj instruksi yang menentukan kelas nilai bawaan yang sesuai.
Perhatikan bahwa nilai bilangan bulat kurang dari 4 byte diperluas ke int32 (bukan native int) ketika dimuat ke tumpukan evaluasi. Nilai floating-point dikonversi ke F jenis ketika dimuat ke tumpukan evaluasi.
Bahasa Perantara Microsoft yang dibentuk dengan benar (MSIL) memastikan bahwa instruksi ldind digunakan dengan cara yang konsisten dengan jenis penunjuk.
Alamat yang awalnya didorong ke tumpukan harus selaras dengan ukuran alami objek pada komputer atau NullReferenceException dapat terjadi (lihat Unaligned instruksi awalan untuk langkah-langkah pencegahan). Hasil dari semua instruksi MSIL yang mengembalikan alamat (misalnya, Ldloca dan Ldarga) diselaraskan dengan aman. Untuk jenis data yang lebih besar dari 1 byte, pengurutan byte bergantung pada CPU target. Kode yang bergantung pada pengurutan byte mungkin tidak berjalan di semua platform.
NullReferenceException dapat dilemparkan jika alamat yang tidak valid terdeteksi.
Metode berikut Emit kelebihan beban dapat menggunakan ldind.ref opcode: