指標

指標和 unsafe

由於它們的性質,指標產生無法驗證的程式碼。因此,任何指標型別的使用都需要 unsafe 上下文。

System.IntPtr 型別是 void*周圍的安全包裝。當不需要不安全的上下文來執行手頭的任務時,它可以作為 void*的更方便的替代方案。

未定義的行為

與 C 和 C++一樣,指標的錯誤使用可能會呼叫未定義的行為,可能的副作用是記憶體損壞和意外程式碼的執行。由於大多數指標操作的無法驗證的性質,正確使用指標完全是程式設計師的責任。

支援指標的型別

與 C 和 C++不同,並非所有 C#型別都具有相應的指標型別。如果以下兩個條件都適用,則 T 型別可能具有相應的指標型別:

  • T 是結構型別或指標型別。
  • T 僅包含以遞迴方式滿足這兩個條件的成員。