Visual Studio 偵錯器中的特殊命名約定
問題:
在哪裡可以找到有關 Visual Studio 偵錯器對某些類型、方法、欄位和局部變數使用的特殊顯示約定的資訊?
解答:
關於未記錄的實作細節的說明:
這些命名約定是編譯器的未記錄實作細節,可能會在未經通知的情況下發生變更。但是,出於教育目的,我們根據當前實現提供一些見解。
特定場景的特殊名稱:
-
未使用的/已刪除的局部變數: 以 '__Deleted$' 開頭的變數。
-
編譯器分配的臨時變數: CS$X$Y,其中 X 表示臨時變數的類型,Y 表示分配的編號。
臨時變數類型值:
- 0:短暫的暫時變數
- 1:傳回值臨時變數
- 2:lock 語句臨時變數
- 3:using 語句臨時變數
- 4:持久的暫時變數
- 5-7:與 foreach 迴圈相關的臨時變數
- 8-264:多維數組索引儲存
- 264 :固定字串臨時變數
特殊編譯器產生的構造的附加特殊名稱:
-
自動屬性支援欄位: 'k'
-
匿名方法閉包類別: 'DisplayClass'
-
匿名型別欄位: 'Field'
-
匿名型別類型參數: 'TPar'
-
迭代器狀態: 'state'
產生特殊名稱的模式:
一般模式是:PC__SI
- P:對於快取的委託和顯示類別實例,使用 CS$
- N:原名
- C:基於場景的魔術代碼 (1-s)
- S:描述性字尾
- I:可選的唯一識別碼
例如,為迭代器的目前值所建立的局部變數將命名為 "PC__current"。
以上是Visual Studio 偵錯器如何顯示特殊類型、方法和變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!