假设我有一本字典:
var dict = new Dictionary<string, string>();
dict["foo"] = "bar";
dict["abc"] = "def";
有没有办法设置断点或数据断点来监控“foo”的值?这意味着
dict["foo"] = "bar2";
应该触发这样的断点,但 dict["abc"] = "def2";
不应该。
我认为它可以通过使用数据断点来完成,或者通过使用属性设置器并在那里放置一个普通断点来完成,但我不确定是否可以在不子类化的情况下完成
Dictionary<string, string>()
。
取消选中
Enable Just My Code
,在调试选项中选中 Enable Source Link support
和 Suppress JIT optimization on module load
。在
dict["foo"] = "bar";
处添加断点
调试你的程序并等待它在此时中断。
按 F11 介入。
如果一切正常,您将进入 setter 内部,以便您可以在该行使用条件
"foo".Equals(key)
设置断点。
现在您可以删除第一个断点并再次调试程序。