指標
指標和 unsafe
由於它們的性質,指標產生無法驗證的程式碼。因此,任何指標型別的使用都需要 unsafe
上下文。
System.IntPtr
型別是 void*
周圍的安全包裝。當不需要不安全的上下文來執行手頭的任務時,它可以作為 void*
的更方便的替代方案。
未定義的行為
與 C 和 C++一樣,指標的錯誤使用可能會呼叫未定義的行為,可能的副作用是記憶體損壞和意外程式碼的執行。由於大多數指標操作的無法驗證的性質,正確使用指標完全是程式設計師的責任。
支援指標的型別
與 C 和 C++不同,並非所有 C#型別都具有相應的指標型別。如果以下兩個條件都適用,則 T
型別可能具有相應的指標型別:
T
是結構型別或指標型別。T
僅包含以遞迴方式滿足這兩個條件的成員。