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 C# nyelv referenciadokumentuma a C# nyelv legújabb kiadású verzióját ismerteti. Emellett a közelgő nyelvi kiadás nyilvános előzetes verziójú funkcióinak kezdeti dokumentációját is tartalmazza.

A dokumentáció azonosítja azokat a funkciókat, amelyeket először a nyelv utolsó három verziójában vagy az aktuális nyilvános előzetes verziókban vezetnek be.

Jótanács

Ha meg szeretné tudni, hogy mikor jelent meg először egy funkció a C#-ban, tekintse meg a C# nyelvi verzióelőzményeiről szóló cikket.

Használja a unsafe módosítót egy típus vagy tag deklarációjában. A típus vagy tag teljes szöveges terjedelme nem biztonságos környezet. A módosítóval unsafe például a következő metódus van deklarálva:

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 paraméterlistában is használhat mutatókat:

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

A nem biztonságos blokkokkal is engedélyezheti a nem biztonságos kód használatát ebben a blokkban. Például:

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 közös nyelvi futtatókörnyezet nem tudja ellenőrizni a nem biztonságos kódot.

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