【问题标题】:Autoproperty debugging自动属性调试
【发布时间】:2015-04-15 14:55:12
【问题描述】:

例如当我使用自动属性时

public string Prop {get;set;}

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

我的问题: 1)编译器在哪里保存带有替换属性的源代码以运行?如果它这样做。
2) 为什么 Intelisense 不工作?
3) 如何在这个函数上设置断点?

我用的是 VS2013 Ultimate。

【问题讨论】:

标签: c# .net debugging properties


【解决方案1】:

1) 编译器不保存源代码,它会编译。隐式支持字段仅存在于 IL 代码中。

2) 这是一项功能,而不是错误,我同意它可能很棒。

3) 您必须手动创建一个支持字段才能在其上放置断点。

private string _prop;
public string Prop
{
    get { return _prop; }
    set { _prop= value; }
}

【讨论】:

    【解决方案2】:

    这里描述了一个很好的解决方案:

    Debugging automatic properties

    基本上可以用 Breapooint->Create New 设置断点并放上

    类名.set_PropertyName 要么 ClassName.get_PropertyName。

    它在 Visual Studio 2015 中也可用,或者对于早期版本,您可以使用 VS 插件(例如 Oz Code)自动执行此操作(在 setter 上中断)

    【讨论】:

      猜你喜欢
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2013-05-12
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多