当我使用autoproperty时,例如
public string Prop {get;set;}
编译器生成两个函数:get_Prop()和set_Prop(string val)。我想从这个函数中设置一个断点。当我按功能设置断点时,此功能名称debuger永远不会进入此功能。智能感知在我的对话框中不起作用(Ctrl + B)
我的问题:
1)编译器将源代码保存为具有替换属性的功能?如果这样做。
2)为什么Intelisense不工作?
3)如何设置这个功能的断点?
我使用的是VS2013 Ultimate。
答案 0 :(得分:1)
1)编译器不保存源代码,编译。隐式支持字段仅出现在IL代码中。
2)这是一个功能,而不是一个错误,我同意它可能很棒。
3)您必须手动创建一个支持字段,以便在其上设置断点。
private string _prop;
public string Prop
{
get { return _prop; }
set { _prop= value; }
}
答案 1 :(得分:1)
这里有一个很好的解决方案:
Debugging automatic properties
基本上,您可以使用Breapooint设置断点 - >创建新建并将其置于
ClassName.set_PropertyName 要么 ClassName.get_PropertyName。
它也可以在Visual Studio 2015中使用,或者对于早期版本,您可以使用VS插件(如Oz代码)自动执行此操作(在setter上中断)