OpCodes.Unbox 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.
Mengonversi representasi kotak dari tipe nilai ke formulir yang tidak dikotak.
public: static initonly System::Reflection::Emit::OpCode Unbox;
public static readonly System.Reflection.Emit.OpCode Unbox;
staticval mutable Unbox : System.Reflection.Emit.OpCode
Public Shared ReadOnly Unbox As OpCode
Nilai Bidang
Keterangan
Tabel berikut mencantumkan format rakitan heksadesimal instruksi dan Microsoft Intermediate Language (MSIL), bersama dengan ringkasan referensi singkat:
Format | Format Rakitan | Deskripsi |
---|---|---|
79 <T > |
batalkan kotak valType |
Mengekstrak data jenis nilai dari obj , representasi kotaknya. |
Perilaku transisi tumpukan, dalam urutan berurutan, adalah:
Referensi objek didorong ke tumpukan.
Referensi objek dimunculkan dari tumpukan dan tidak dikotak ke penunjuk tipe nilai.
Penunjuk jenis nilai didorong ke tumpukan.
Jenis nilai memiliki dua representasi terpisah dalam Common Language Infrastructure (CLI):
Formulir 'mentah' yang digunakan saat jenis nilai disematkan dalam objek lain.
Formulir 'kotak', di mana data dalam jenis nilai dibungkus (dikotak) ke dalam objek sehingga dapat ada sebagai entitas independen.
unbox
Instruksi mengonversi referensi objek (jenis O
), representasi kotak dari jenis nilai, menjadi penunjuk jenis nilai (penunjuk terkelola, jenis &
), formulir yang tidak dikotak. Jenis nilai yang disediakan (valType
) adalah token metadata yang menunjukkan jenis nilai yang terkandung dalam objek kotak.
Tidak seperti Box, yang diperlukan untuk membuat salinan jenis nilai untuk digunakan dalam objek, unbox
tidak diperlukan untuk menyalin jenis nilai dari objek. Biasanya hanya menghitung alamat jenis nilai yang sudah ada di dalam objek kotak.
InvalidCastException dilemparkan jika objek tidak dikotak sebagai valType
.
NullReferenceException dilemparkan jika referensi objek adalah referensi null.
TypeLoadException dilemparkan jika jenis valType
nilai tidak dapat ditemukan. Ini biasanya terdeteksi ketika instruksi Microsoft Intermediate Language (MSIL) dikonversi ke kode asli, bukan pada runtime.
Metode berikut Emit kelebihan beban dapat menggunakan unbox
opcode: