| BreakpointStore {SMRUCC.Rsharp.Interpreter} | .NET clr documentation |
断点的集合管理器
对外是以文件名+行号的方式来进行断点的增删查改操作的, 而在内部则是使用经过规范化处理之后的文件名:行号字符串 作为键名来建立索引字典, 使得在程序执行的热点循环之中能够以 O(1) 的时间复杂度来完成断点的命中判断.
这里之所以不直接使用 @M:SMRUCC.Rsharp.Interpreter.ExecuteEngine.Expression.GetBreakPointHashCode 所返回的哈希码来做索引, 是因为该哈希码的计算逻辑位于外部的 sciBASIC 程序集之中, 其具体的哈希算法对于本项目而言是不透明的, 无法保证由用户所输入的文件名+行号能够反推出完全一致的哈希码
# namespace SMRUCC.Rsharp.Interpreter
export class BreakpointStore {
# 当前所注册的断点的总数量
count: integer;
# 当前是否没有注册任何的断点?
isEmpty: boolean;
}