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