RuntimeHelpers.GetObjectValue(Object) Metode
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.
Kotak jenis nilai.
public:
static System::Object ^ GetObjectValue(System::Object ^ obj);
public static object GetObjectValue (object obj);
public static object? GetObjectValue (object? obj);
static member GetObjectValue : obj -> obj
Public Shared Function GetObjectValue (obj As Object) As Object
Parameter
- obj
- Object
Jenis nilai yang akan dikotak.
Mengembalikan
Salinan obj
kotak jika itu adalah kelas nilai; jika tidak, obj
itu sendiri.
Contoh
Contoh berikut menunjukkan cara mengetik kelas nilai dengan menggunakan GetObjectValue metode .
using System;
using System.Runtime.CompilerServices;
// Declare a value type.
struct Point2I
{
public int x;
public int y;
}
class Program
{
static void Main(string[] args)
{
// Allocate an unboxed Point2I (not on the heap).
Point2I pnt;
pnt.x = 0;
pnt.y = 0;
// Box the value. (Put it in the heap.)
object objPntr = RuntimeHelpers.GetObjectValue(pnt);
}
}
Imports System.Runtime.CompilerServices
' Declare a value type.
Structure Point2I
Dim x As Integer
Dim y As Integer
End Structure
Module Program
Sub Main(ByVal args() As String)
' Allocate an unboxed Point2I (not on the heap).
Dim pnt As Point2I
pnt.x = 0
pnt.y = 0
' Box the value. (Put it in the heap.)
Dim objPntr As Object = RuntimeHelpers.GetObjectValue(pnt)
End Sub
End Module
Keterangan
Tinju jenis nilai membuat objek dan melakukan salinan dangkal bidang dari jenis nilai yang ditentukan ke dalam objek baru.
Metode ini memungkinkan kelas nilai dimanipulasi sebagai objek saat mempertahankan perilaku alias kelas nilai.
Nilai yang dikembalikan tergantung pada apakah kelas nilai dapat diubah atau tidak dapat diubah:
Jika nilai yang ditetapkan adalah kelas nilai yang dapat diubah, metode mengembalikan salinan kelas yang dangkal, karena kelas nilai memiliki semantik salinan.
Jika nilai yang ditetapkan adalah kelas nilai yang tidak dapat diubah, metode mengembalikan objek itu sendiri, bukan salinan kelas.
Pengkompilasi bahasa yang di ketik secara dinamis dapat menggunakan metode ini untuk memastikan bahwa jenis nilai kotak berfungsi secara identik dengan jenis nilai yang tidak dikotak. Artinya, jenis nilai kotak dikloning saat Anda meneruskannya, dan selalu diteruskan oleh nilai. Pengkompilasi dapat memanggil GetObjectValue untuk menetapkan jenis nilai ke objek atau untuk meneruskan jenis nilai sebagai parameter objek jenis.
Metode ini digunakan oleh pengkompilasi.