Unsafe.AsRef Yöntem
Ö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.
AsRef<T>(Void*) |
Yönetilmeyen bir işaretçiyi, türünde |
AsRef<T>(T) |
Verilen salt okunur başvuruyu değiştirilebilir başvuru olarak yeniden yorumlar. |
- Kaynak:
- Unsafe.cs
- Kaynak:
- Unsafe.cs
- Kaynak:
- Unsafe.cs
Önemli
Bu API, CLS uyumlu değildir.
Yönetilmeyen bir işaretçiyi, türünde T
bir değere yönetilen işaretçiye dönüştürür.
public:
generic <typename T>
static T % AsRef(void* source);
public static ref T AsRef<T> (void* source);
[System.CLSCompliant(false)]
public static ref T AsRef<T> (void* source);
static member AsRef : nativeptr<unit> -> 'T
[<System.CLSCompliant(false)>]
static member AsRef : nativeptr<unit> -> 'T
Tür Parametreleri
- T
Yönetilen işaretçinin öğe türü.
Parametreler
- source
- Void*
Dönüştürülecek yönetilmeyen işaretçi.
Döndürülenler
türünde T
bir değerin yönetilen işaretçisi.
- Öznitelikler
Açıklamalar
Çağıran, sonuçta elde edilen yönetilen işaretçinin başvuruda bulunan tür için düzgün hizalandığından emin olmayı sağlar. Hizalama gereksinimleri hakkında daha fazla bilgi için bkz. ECMA-335, Sn. I.12.6.2 ("Hizalama").
Şunlara uygulanır
.NET 9 ve diğer sürümler
Ürün | Sürümler |
---|---|
.NET | Core 1.0, Core 1.1, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 4.7 (package-provided), 4.7.1 (package-provided), 4.7.2 (package-provided), 4.8 (package-provided) |
.NET Standard | 2.0 (package-provided) |
- Kaynak:
- Unsafe.cs
- Kaynak:
- Unsafe.cs
- Kaynak:
- Unsafe.cs
Verilen salt okunur başvuruyu değiştirilebilir başvuru olarak yeniden yorumlar.
public:
generic <typename T>
static T % AsRef(T % source);
public static ref T AsRef<T> (in T source);
public static ref T AsRef<T> (scoped in T source);
public static ref T AsRef<T> (scoped ref T source);
public static ref T AsRef<T> (ref T source);
static member AsRef : 'T -> 'T
Public Shared Function AsRef(Of T) (ByRef source As T) As T
Tür Parametreleri
- T
Başvurunun temel türü.
Parametreler
- source
- T
Yeniden yoruma salt okunur başvuru.
Döndürülenler
türünde T
bir değere değiştirilebilir başvuru.
Açıklamalar
Bu API kavramsal olarak C++'nın const_cast<>
öğesine benzer. Başvuruda bulunan konuma hiçbir veri yazılmamasını sağlamak çağıranın sorumluluğundadır. Çalışma zamanı, salt okunur başvuruların gerçekten sabit olduğu varsayımı üzerine önceden belirlenmiş iç mantık içerir ve bu sabiti ihlal eden çağıranlar çalışma zamanı içinde tanımsız davranış tetikleyebilir.
AsRef
genellikle gibi bağımsız değişken olarak değiştirilebilir yönetilen işaretçileri Addkabul eden yöntemlere salt okunur başvuru geçirmek için kullanılır. Aşağıdaki örneği inceleyin.
int ComputeSumOfElements(ref int refToFirstElement, nint numElements)
{
int sum = 0;
for (nint i = 0; i < numElements; i++)
{
sum += Unsafe.Add(ref refToFirstElement, i);
}
}
Giriş parametresi yerine ref int refToFirstElement
iseref readonly int refToFirstElement
, salt okunur başvurular bağımsız değişken Add
olarak kullanılamadığından önceki örnek derlenmez. Bunun yerine, AsRef
aşağıdaki örnekte gösterildiği gibi değişmezlik kısıtlamasını kaldırmak ve derlemenin başarılı olmasını sağlamak için kullanılabilir.
int ComputeSumOfElements(ref readonly int refToFirstElement, nint numElements)
{
int sum = 0;
for (nint i = 0; i < numElements; i++)
{
sum += Unsafe.Add(ref Unsafe.AsRef(ref refToFirstElement), i);
}
}
Şunlara uygulanır
.NET 9 ve diğer sürümler
Ürün | Sürümler |
---|---|
.NET | Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 4.7 (package-provided), 4.7.1 (package-provided), 4.7.2 (package-provided), 4.8 (package-provided) |
.NET Standard | 2.0 (package-provided) |
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin: