可以在监视窗口/调试视图中查看“属性”,但不调用调用。 C#

时间:2011-06-16 13:11:22

标签: c# debugging properties

我发布了一个关于踩到属性的问题Here 原来是VS2008的问题,并且到了2010年。 我正在探索属性,并且已经达到了一个方面,我需要清楚一下如何在监视窗口中看到有效的值,但不会调用实际的调用。

当我尝试在监视窗口中查看对象属性时,我可以看到我假设我将看到null的值。所以我在房产上放了一个断点并再次运行程序,期待它在那里打破。这没有发生。现在,

  • 对于属性,调试模式中显示的值只是VS的一个附加功能,允许开发人员查看属性值,尽管应该调用该调用
  • 或我错过了一个设置吗?我知道我启用了“Step in properties”选项。
  • 一旦我专门访问该属性,断点就会发生。

下面是我看到的屏幕截图。在注释掉的下一行中调用了对属性的调用。

enter image description here

这是我正在测试的代码。

namespace ClassPropertiesView
{
    class A
    {
        public int timings
        {
            get
            {
                return objB.bTimes;
            }
        }

        public B objB
        {
            get
            {
                return new B();
            }
        }
    }

    public class B
    {
        public int bTimes
        {
            get
            {
                return -1;
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            A anObject = new A();
     //       Console.WriteLine(anObject.timings);
        }
    }
}

感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:3)

正如您所看到的,当您使用监视窗口(以及其他VS调试视图)时,您的方法中设置的断点不会被命中。

我确信这是设计的。如果您打开了模态即时监视窗口,并且您看到了一个属性,那么它将如何显示当前窗口背后的代码。

工具中有一个设置...选项... Debug \ General称为Allow property evaluation in variable windows。如果您不喜欢自动调用get_property方法,可以将其关闭。