自动属性调试

时间:2015-02-14 18:15:39

标签: c# .net debugging properties

当我使用autoproperty时,例如

public string Prop {get;set;}

编译器生成两个函数:get_Prop()和set_Prop(string val)。我想从这个函数中设置一个断点。当我按功能设置断点时,此功能名称debuger永远不会进入此功能。智能感知在我的对话框中不起作用(Ctrl + B)

我的问题: 1)编译器将源代码保存为具有替换属性的功能?如果这样做。
2)为什么Intelisense不工作?
3)如何设置这个功能的断点?

我使用的是VS2013 Ultimate。

2 个答案:

答案 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上中断)

enter image description here