Unsicherer Code und Zeiger
C#
unterstützt die direkte Veränderung von Speicherinhalten durch
Zeiger, die in als unsicher gekennzeichneten Codeblöcken genutzt werden und mit der
Compileroption /unsafe kompiliert wurden. Zeigertypen
werden vor allem aus Gründen der Interoperabilität mit C-APIs genutzt, sie
können aber auch für den Zugriff auf Speicher außerhalb des verwalteten Heap
oder für performancekritische Hotspots verwendet werden.
Zeigergrundlagen
Zu jedem Werttyp bzw. Zeigertyp V gibt es einen korrespondierenden Zeigertyp V*. Eine Zeigerinstanz hält die Adresse einer Variablen. Zeigertypen können (unsicher) auf jeden anderen Zeigertyp gecastet werden. Die wichtigsten Zeigeroperatoren sind folgende:
|
Operator |
Bedeutung |
|---|---|
|
|
Der Adressoperator ... |