nem biztonságos (C# referencia)

A unsafe kulcsszó egy nem biztonságos környezetet jelöl, amely minden mutatót érintő művelethez szükséges. További információ: Nem biztonságos kód és mutatók.

A módosító egy unsafe típus vagy tag deklarációjában használható. A típus vagy tag teljes szöveges terjedelme ezért nem biztonságos környezetnek minősül. A következők például a módosítóval unsafe deklarált metódusok:

unsafe static void FastCopy(byte[] src, byte[] dst, int count)
{
    // Unsafe context: can use pointers here.
}

A nem biztonságos környezet hatóköre a paraméterlistától a metódus végéig terjed, így a mutatók a paraméterlistában is használhatók:

unsafe static void FastCopy ( byte* ps, byte* pd, int count ) {...}

A nem biztonságos blokkokkal is engedélyezheti a blokkon belüli nem biztonságos kód használatát. Példa:

unsafe
{
    // Unsafe context: can use pointers here.
}

A nem biztonságos kód fordításához meg kell adnia az AllowUnsafeBlocks fordítóbeállítást. A nem biztonságos kódot a közös nyelvi futtatókörnyezet nem ellenőrzi.

Példa

// 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# nyelvspecifikáció

További információ: Nem biztonságos kód a C# nyelvi specifikációjában. A nyelvi specifikáció a C#-szintaxis és -használat végleges forrása.

Lásd még