Per Mausklick bewerten und Feedback geben
MSDN
MSDN Library
Visual Studio 2005
Visual C#
C#-Referenz
C#-Schlüsselwörter
Modifizierer
 unsafe
Alle reduzieren/Alle erweitern Alle reduzieren
Diese Seite ist spezifisch für
Microsoft Visual Studio 2005/.NET Framework 2.0

Andere Versionen stehen ebenfalls zur Verfügung für:
C#-Sprachreferenz
unsafe (C#-Referenz)

Das unsafe-Schlüsselwort deutet auf einen nicht sicheren Kontext hin, der für alle Zeigeroperationen erforderlich ist. Weitere Informationen finden Sie unter Unsicherer Code und Zeiger (C#-Programmierhandbuch).

Sie können den unsafe-Modifizierer in der Deklaration eines Typs oder Members verwenden. Daraufhin wird der gesamte Text des Typs oder Members als nicht sicherer Kontext betrachtet. Das folgende Beispiel enthält beispielsweise eine Methode, die mit dem unsafe-Modifizierer deklariert wurde:

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

Der Gültigkeitsbereich des nicht sicheren Kontexts reicht von der Parameterliste bis zum Methodenende, sodass auch in der Parameterliste Zeiger verwendet werden können:

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

Sie können auch einen nicht sicheren Block verwenden, um die Verwendung unsicheren Codes innerhalb dieses Blocks zu ermöglichen. Beispiel:

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

Zum Kompilieren von unsicherem Code muss die /unsafe-Compileroption angegeben werden. Unsicherer Code kann nicht durch die Common Language Runtime überprüft werden.

// cs_unsafe_keyword.cs
// compile with: /unsafe
using System;
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);
   }
}

Ausgabe

25

Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:

  • 18 Unsicherer Code

© 2012 Microsoft. Alle Rechte vorbehalten. Nutzungsbedingungen | Markenzeichen | Informationen zur Datensicherheit
Page view tracker