Aracılığıyla paylaş


güvenli değil (C# Başvurusu)

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.

Ö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.

Ayrıca bakınız