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:
Gewusst wie: Verwenden von Zeigern zum Kopieren eines Bytearrays (C#-Programmierhandbuch)
Gewusst wie: Verwenden der ReadFile-Funktion von Windows (C#-Programmierhandbuch)
C#-Programmiersprachenspezifikation
Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:
18 Unsicherer Code
B 3 Grammatikerweiterungen für unsicheren Code