Delen via


onveilig (C#-verwijzing)

Het unsafe trefwoord geeft een onveilige context aan, die vereist is voor elke bewerking met aanwijzers. Zie Onveilige code en aanwijzers voor meer informatie.

U kunt de unsafe wijzigingsfunctie gebruiken in de declaratie van een type of lid. De volledige tekstgrootte van het type of lid wordt daarom beschouwd als een onveilige context. Het volgende is bijvoorbeeld een methode die is gedeclareerd met de unsafe wijzigingsfunctie:

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

Het bereik van de onveilige context breidt zich uit van de parameterlijst tot het einde van de methode, zodat aanwijzers ook kunnen worden gebruikt in de parameterlijst:

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

U kunt ook een onveilig blok gebruiken om het gebruik van onveilige code in dit blok in te schakelen. Voorbeeld:

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

Als u onveilige code wilt compileren, moet u de optie AllowUnsafeBlocks compiler opgeven. Onveilige code is niet verifieerbaar door de algemene taalruntime.

Opmerking

// 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#-taalspecificatie

Zie Onveilige code in de C#-taalspecificatie voor meer informatie. De taalspecificatie is de definitieve bron voor de C#-syntaxis en het gebruik.

Zie ook