C# Language指針

備註

指針和unsafe

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

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

未定義的行為

與C和C ++一樣,指針的錯誤使用可能會調用未定義的行為,可能的副作用是內存損壞和意外代碼的執行。由於大多數指針操作的無法驗證的性質,正確使用指針完全是程序員的責任。

支持指針的類型

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

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

指針 相關例子