Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.