Visual Studio 偵錯器中的隱藏命名約定
Visual Studio 偵錯器使用特定的命名約定來表示編譯器產生的元素,這些約定通常被稱為「魔術名稱」。這些名稱在正常情況下不會顯示給使用者。
範例:
- 以 'CS$' 開頭的未使用的局部變數會被隱藏。
- 匿名方法類型具有唯一的識別碼。
- 自動屬性的備份欄位遵循特殊的模式。
理解命名約定
不幸的是,這些命名約定並未公開記錄,並且可能會在未來的編譯器更新中發生變化。但是,我們可以分享一些對其結構的見解。
局部變數:
- 未使用的局部變數以 '__Deleted$' 後綴標記。
- 臨時變數命名為 'CS$X$Y',其中 'X' 表示臨時類型,'Y' 是分配的編號。
編譯器產生的元素:
- 迭代器狀態、目前值和已儲存的參數被指派特定的名稱。
- 閉包類別實例和匿名方法實例具有唯一的識別碼。
- 匿名類型欄位和類型使用預先定義的命名模式。
- 自動屬性的備份欄位遵循 "BackingField" 約定。
產生的名稱結構:
魔術名稱通常遵循 "PC__SI" 模式:
- 'P' 對快取的委託和顯示類別實例來說是 'CS$'
- 'N' 是與元素關聯的原始名稱
- 'C' 是一個指示元素類型的字元(例如,迭代器狀態的 's')
- 'S' 是描述性字尾(例如,'current')
- 'I' 是可選的唯一編號
以上是Visual Studio 偵錯器使用哪些隱藏命名約定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!