RuntimeHelpers.GetObjectValue(Object) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir değer türünü kutular.
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
Parametreler
- obj
- Object
Kutulanacak değer türü.
Döndürülenler
Bir değer sınıfıysa kutulanmış kopyası obj
; değilse, obj
kendisi.
Örnekler
Aşağıdaki örnekte, yöntemini kullanarak bir değer sınıfının nasıl kutuya konduğunu gösterilmektedir GetObjectValue .
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
Açıklamalar
Değer türünün kutulanması bir nesne oluşturur ve belirtilen değer türündeki alanların sığ bir kopyasını yeni nesneye gerçekleştirir.
Bu yöntem, bir değer sınıfının diğer ad oluşturma davranışını korurken bir değer sınıfının nesne olarak işlenmesine olanak tanır.
Dönüş değeri, değer sınıfının değişebilir mi yoksa sabit mi olduğuna bağlıdır:
Atanmakta olan değer değiştirilebilir bir değer sınıfıysa, değer sınıflarının kopyalama semantiği olduğundan yöntemi sınıfın sığ bir kopyasını döndürür.
Atanan değer sabit bir değer sınıfıysa, yöntemi sınıfın bir kopyası yerine nesnesinin kendisini döndürür.
Dinamik olarak yazılan dillerin derleyicileri, kutulanmış değer türlerinin kutulanmamış değer türleriyle aynı şekilde çalışmasını sağlamak için bu yöntemi kullanabilir. Başka bir ifadeyle, kutulanmış değer türleri bunları geçirdiğinizde kopyalanır ve her zaman değere göre geçirilir. Derleyici, bir nesneye değer türü atamak veya bir değer türünü tür nesnesinin parametresi olarak geçirmek için çağrısı GetObjectValue yapabilir.
Bu yöntem derleyiciler tarafından kullanılır.