Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das unsafe Schlüsselwort zeigt einen unsicheren Kontext an, der für alle Vorgänge mit Zeigern erforderlich ist. Weitere Informationen finden Sie unter "Unsicherer Code und Zeiger".
Sie können den unsafe Modifizierer in der Deklaration eines Typs oder eines Mitglieds verwenden. Der gesamte Textumfang des Typs oder Elements wird daher als unsicherer Kontext betrachtet. Die folgende Methode ist beispielsweise mit dem unsafe Modifizierer deklariert:
unsafe static void FastCopy(byte[] src, byte[] dst, int count)
{
// Unsafe context: can use pointers here.
}
Der Bereich des unsicheren Kontexts erstreckt sich von der Parameterliste bis zum Ende der Methode, sodass Zeiger auch in der Parameterliste verwendet werden können:
unsafe static void FastCopy ( byte* ps, byte* pd, int count ) {...}
Sie können auch einen unsicheren Block verwenden, um die Verwendung eines unsicheren Codes in diesem Block zu aktivieren. Beispiel:
unsafe
{
// Unsafe context: can use pointers here.
}
Um unsicheren Code zu kompilieren, müssen Sie die Compileroption AllowUnsafeBlocks angeben. Unsicherer Code kann von der Common Language Runtime nicht überprüft werden.
Beispiel
// 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#-Sprachspezifikation
Weitere Informationen finden Sie unter "Unsicherer Code " in der C#-Sprachspezifikation. Die Sprachspezifikation ist die endgültige Quelle für C#-Syntax und -Verwendung.