Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
unsafe anahtar sözcüğü, işaretçileri içeren herhangi bir işlem için gerekli olan güvenli olmayan bir bağlamı belirtir. Daha fazla bilgi için bkz. Güvenli Olmayan Kod ve İşaretçiler.
C# dili başvuru belgesi, C# dilinin en son yayımlanan sürümünü gösterir. Ayrıca, yaklaşan dil sürümü için genel önizlemelerdeki özelliklere yönelik ilk belgeleri içerir.
Belgelerde ilk olarak dilin son üç sürümünde veya geçerli genel önizlemelerde sunulan tüm özellikler tanımlanır.
Tavsiye
Bir özelliğin C# dilinde ilk tanıtıldığı zamanları bulmak için C# dil sürümü geçmişi makalesine bakın.
Bir türün unsafe veya üyenin bildiriminde değiştiriciyi kullanın. Türün veya üyenin metinsel kapsamının tamamı güvenli olmayan bir bağlamdır. Örneğin, değiştirici ile unsafe aşağıdaki yöntem bildirilir:
unsafe static void FastCopy(byte[] src, byte[] dst, int count)
{
// Unsafe context: can use pointers here.
}
Güvenli olmayan bağlamın kapsamı parametre listesinden yöntemin sonuna kadar uzandığından, parametre listesindeki işaretçileri de kullanabilirsiniz:
unsafe static void FastCopy ( byte* ps, byte* pd, int count ) {...}
Bu blok içinde güvenli olmayan kod kullanımını etkinleştirmek için güvenli olmayan bir blok da kullanabilirsiniz. Örneğin:
unsafe
{
// Unsafe context: can use pointers here.
}
Güvenli olmayan kodu derlemek için AllowUnsafeBlocks derleyici seçeneğini belirtmeniz gerekir. Ortak dil çalışma zamanı güvenli olmayan kodu doğrulayamaz.
Note
C# 15'te kullanılabilen bellek güvenliği önizleme özelliği, bağlam unsafe gerektiren işlemleri daraltıyor.
artık unsafe bir işaretçi, deyim oluşturmak, bir stackalloc ifadeyi fixed işaretçiye dönüştürmek ve yönetilmeyen bir tür üzerinde kullanmak sizeof için bağlam gerekli değildir.
Yalnızca işaretçi dolaylı gibi işaret edilen belleğe erişen işlemler yine de bir unsafe bağlam gerektirir. Daha sonraki bir önizleme, üyeyi gerekli-güvenli değil olarak işaretlemek için değişirunsafe, bu nedenle arayanların bir unsafe bağlamdan üyeyi kullanması gerekir.
Örnek
// compile with: -unsafe
class UnsafeTest
{
// Unsafe method: takes pointer to int.
unsafe static void SquarePtrParam(int* p)
{
*p *= *p;
}
unsafe static void Main()
{
int i = 5;
// Unsafe method: uses address-of operator (&).
SquarePtrParam(&i);
Console.WriteLine(i);
}
}
// Output: 25
C# dil belirtimi
Daha fazla bilgi için bkz. C# Dil Belirtimi'ndekiGüvenli olmayan kod. Dil belirtimi, C# söz dizimi ve kullanımı için kesin kaynaktır.