Unsicherer Code und Zeiger (C#-Programmierhandbuch)Unsafe Code and Pointers (C# Programming Guide)

Um Typsicherheit und Sicherheit zu gewährleisten, unterstützt C# standardmäßig keine Zeigerarithmetik.To maintain type safety and security, C# does not support pointer arithmetic, by default. Sie können jedoch das unsafe-Schlüsselwort verwenden, um einen unsicheren Kontext zu definieren, in dem Zeiger verwendet werden können.However, by using the unsafe keyword, you can define an unsafe context in which pointers can be used. Weitere Informationen über Zeiger finden Sie unter Zeigertypen.For more information about pointers, see the topic Pointer types.

Hinweis

In der Common Language Runtime (CLR) wird unsicherer Code als „nicht überprüfbarer Code“ bezeichnet.In the common language runtime (CLR), unsafe code is referred to as unverifiable code. Unsicherer Code in C# ist nicht unbedingt gefährlich, es handelt sich dabei lediglich um einen Code, dessen Sicherheit nicht durch die CLR überprüft werden kann.Unsafe code in C# is not necessarily dangerous; it is just code whose safety cannot be verified by the CLR. Die CLR wird daher nur unsicheren Code ausführen, wenn sie sich in einer voll vertrauenswürdigen Assembly befindet.The CLR will therefore only execute unsafe code if it is in a fully trusted assembly. Wenn Sie unsicheren Code verwenden, liegt es in Ihrer Verantwortung, dafür zu sorgen, dass Ihr Code keine Sicherheitsrisiken oder Zeigerfehler enthält.If you use unsafe code, it is your responsibility to ensure that your code does not introduce security risks or pointer errors.

Übersicht über unsicheren CodeUnsafe Code Overview

Unsicherer Code verfügt über die folgenden Eigenschaften:Unsafe code has the following properties:

  • Methoden, Typen und Codeblöcke können als unsicher definiert werden.Methods, types, and code blocks can be defined as unsafe.

  • In manchen Fällen kann unsicherer Code die Leistung einer Anwendung erhöhen, indem die Überprüfung von Arraygrenzen entfernt wird.In some cases, unsafe code may increase an application's performance by removing array bounds checks.

  • Unsicherer Code ist erforderlich, wenn Sie native Funktionen aufrufen, die Zeiger erfordern.Unsafe code is required when you call native functions that require pointers.

  • Die Verwendung von unsicherem Code führt zu Sicherheits- und Stabilitätsrisiken.Using unsafe code introduces security and stability risks.

  • Damit unsicherer Code in C# kompiliert werden kann, muss die Anwendung mit /unsafe kompiliert werden.In order for C# to compile unsafe code, the application must be compiled with /unsafe.

Weitere Informationen finden Sie unter:For more information, see:

C#-ProgrammiersprachenspezifikationC# Language Specification

Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auchSee Also

C#-ProgrammierhandbuchC# Programming Guide