Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het unsafe trefwoord geeft een onveilige context aan, die vereist is voor elke bewerking met aanwijzers. Zie Onveilige code en aanwijzers voor meer informatie.
De C#-taalreferentiedocumenten beschrijven de meest recent uitgebrachte versie van de C#-taal. Het bevat ook de eerste documentatie voor functies in openbare previews voor de aanstaande taalrelease.
De documentatie identificeert alle functies die voor het eerst zijn geïntroduceerd in de laatste drie versies van de taal of in de huidige openbare previews.
Aanbeveling
Raadpleeg het artikel over de versiegeschiedenis van de C#-taal om te achterhalen wanneer een functie voor het eerst is geïntroduceerd in C#.
Gebruik de unsafe wijzigingsfunctie in de declaratie van een type of lid. De volledige tekstuele omvang van het type of lid is een onveilige context. De volgende methode wordt bijvoorbeeld 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 u ook aanwijzers in de parameterlijst kunt gebruiken:
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. De algemene taalruntime kan onveilige code niet verifiëren.
Voorbeeld
// 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.