解碼 Visual Studio 偵錯器的隱藏名稱
Visual Studio 的 C# 編譯器採用類型、方法和變數的唯一內部名稱系統,這些名稱對開發人員不可見。 這些透過 Reflector 等工具揭示的「神奇名稱」在管理最佳化的局部變數、臨時儲存位置和編譯器產生的元素方面發揮關鍵作用。
有限的文件和實作細節
要注意的是:這些命名方案沒有正式記錄,如有修改,恕不另行通知。 然而,我們觀察到以下模式:
局部變數命名約定:
__Deleted$
CS$X$Y
(其中 X
表示暫時變數類型,Y
表示其索引)。 編譯器產生的元素名稱:
P<name>C__state$S
P<name>C__current$S
P<name>C__AnonymousMethodDelegate$S
P<name>C__DisplayClass$S
P<name>C__BackingField$S
GenerateNames.cs 檔案
有關這些命名約定的最新信息,請參閱 C# 編譯器原始程式碼中的 GeneratedNames.cs
檔案。
PostSharp 2.0 以及理解這些名稱的重要性
徹底理解這些內部命名約定對於像 PostSharp 2.0 這樣的工具至關重要。 透過遵守這些約定,PostSharp 可確保 Visual Studio 中流暢且一致的偵錯體驗。
以上是C# 編譯器產生的「神奇名稱」是什麼以及 PostSharp 2.0 如何利用它們?的詳細內容。更多資訊請關注PHP中文網其他相關文章!