OpCodes.Stelem_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.
Mengganti elemen array pada indeks tertentu dengan nilai ref objek (jenis O) pada tumpukan evaluasi.
public: static initonly System::Reflection::Emit::OpCode Stelem_Ref;
public static readonly System.Reflection.Emit.OpCode Stelem_Ref;
staticval mutable Stelem_Ref : System.Reflection.Emit.OpCode
Public Shared ReadOnly Stelem_Ref As OpCode
Nilai Bidang
Keterangan
Tabel berikut mencantumkan format rakitan heksadesimal dan Microsoft Intermediate Language (MSIL) instruksi, bersama dengan ringkasan referensi singkat:
| Format | Format Rakitan | Deskripsi |
|---|---|---|
| A2 | stelem.ref | Mengganti elemen array pada indeks yang disediakan dengan ref nilai (jenis O) pada tumpukan. |
Perilaku transisi tumpukan, dalam urutan berurutan, adalah:
Referensi objek ke array,
array, didorong ke tumpukan.Indeks yang valid ke elemen di
arraydidorong ke tumpukan.Nilai didorong ke tumpukan.
Nilai, indeks, dan referensi array muncul dari tumpukan; nilai dimasukkan ke dalam elemen array pada indeks yang diberikan.
stelem.ref Instruksi menggantikan nilai elemen pada indeks yang disediakan dalam array array satu dimensi dengan ref nilai (jenis O) yang didorong ke tumpukan.
Array adalah objek dan karenanya diwakili oleh nilai jenis O. Indeks adalah jenis native int.
Perhatikan bahwa stelem.ref secara implisit melemparkan nilai yang disediakan ke jenis array elemen sebelum menetapkan nilai ke elemen array. Transmisi ini dapat gagal, bahkan untuk kode terverifikasi.
stelem.ref Dengan demikian instruksi dapat melemparkan InvalidCastException. Untuk array satu dimensi yang tidak berbasis nol dan untuk array multidimensi, Array kelas menyediakan SetValue metode .
NullReferenceException dilemparkan jika array merupakan referensi null.
IndexOutOfRangeException dilemparkan jika index negatif, atau lebih besar dari batas array.
ArrayTypeMismatchException dilemparkan jika array tidak menyimpan elemen dari jenis yang diperlukan.
Metode berikut Emit kelebihan beban dapat menggunakan stelem.ref opcode: