解码 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中文网其他相关文章!