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
array
didorong 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: