Unsicherer Code und Zeiger (C#-Programmierhandbuch)

Aktualisiert: November 2007

Um Typsicherheit und Sicherheit zu gewährleisten, unterstützt C# standardmäßig keine Zeigerarithmetik. Mit dem unsafe-Schlüsselwort können Sie jedoch einen unsicheren Kontext definieren, in dem Zeiger verwendet werden können. Weitere Informationen zu Zeigern finden Sie unter dem Thema Zeigertypen.

Hinweis:

In der Common Language Runtime (CLR) wird unsicherer Code als nicht überprüfbarer Code bezeichnet. Unsicherer Code in C# ist nicht zwangsläufig gefährlich. Es handelt sich vielmehr um Code, dessen Sicherheit nicht durch die CLR überprüft werden kann. Die CLR führt deshalb unsicheren Code nur dann aus, wenn er sich innerhalb einer vollständig vertrauenswürdigen Assembly befindet. Wenn Sie unsicheren Code verwenden, sind Sie dafür verantwortlich, dass der Code keine Sicherheitsrisiken oder Zeigerfehler einführt. Weitere Informationen finden Sie unter Sicherheit (C#-Programmierhandbuch).

Übersicht über unsicheren Code

Unsicherer Code weist die folgenden Eigenschaften auf:

  • Methoden, Typen und Codeblöcke können als unsicher definiert werden.

  • In einigen Fällen kann unsicherer Code möglicherweise die Leistung einer Anwendung steigern, indem die Überprüfungen der Arraygrenzen entfernt werden.

  • Unsicherer Code ist erforderlich, wenn systemeigene Funktionen aufgerufen werden, die Zeiger erfordern.

  • Durch unsicheren Code werden Sicherheits- und Stabilitätsrisiken eingeführt.

  • Damit unsicherer Code in C# kompiliert wird, muss die Anwendung mit /unsafe kompiliert werden.

Verwandte Abschnitte

Weitere Informationen finden Sie unter folgenden Themen:

C#-Programmiersprachenspezifikation

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

  • 18 Unsicherer Code

  • B 3 Grammatikerweiterungen für unsicheren Code

Siehe auch

Konzepte

C#-Programmierhandbuch