Teilen über


unsicher (C#-Referenz)

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".

Die C#-Sprachreferenz dokumentiert die zuletzt veröffentlichte Version der C#-Sprache. Außerdem enthält sie eine erste Dokumentation zu Funktionen in der öffentlichen Vorschau für die kommende Sprachversion.

In der Dokumentation werden alle Features identifiziert, die in den letzten drei Versionen der Sprache oder in der aktuellen öffentlichen Vorschau eingeführt wurden.

Tipp

Informationen dazu, wann ein Feature erstmals in C# eingeführt wurde, finden Sie im Artikel zum Versionsverlauf der C#-Sprache.

Verwenden Sie den unsafe Modifizierer in der Deklaration eines Typs oder eines Elements. Der gesamte Textumfang des Typs oder Elements ist ein unsicherer Kontext. Die folgende Methode wird 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 Sie auch Zeiger in der Parameterliste verwenden können:

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

Sie können auch einen unsicheren Block verwenden, um die Verwendung unsicherer Code 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. Die Common Language Runtime kann unsicheren Code nicht überprüfen.

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.

Siehe auch