观察值如何不影响环境

时间:2015-10-05 13:47:10

标签: debugging ide watch

在IDE中调试时,IDE如何知道如何在不改变环境的情况下计算监视值(写入文件,将结果写入DB)?

Watch Expression Screenshot

1 个答案:

答案 0 :(得分:1)

你的观察不能一概而论。 IDE通常在调试期间进行更改,尤其是在属性具有副作用的情况下。

Visual Studio

以下C#代码:

using System;

namespace EvaluateChangesValue
{
    class Program
    {
        static void Main()
        {
            var program = new Program();
            Console.WriteLine(program.Value);
            Console.ReadLine();
            Console.WriteLine(program.Value);
            Console.ReadLine();
        }

        private int member;

        private int Value => member++;
    }
}

在第一个ReadLine()设置断点,然后将program.Value添加到监视窗口,看看由于member++语句值如何增加。

Visual Studio changed value

的Eclipse

在Java和Eclipse中,由于以下原因,制作相同的证据有点困难:

  1. 在Java中,您可以更清楚地调用方法还是访问字段。
  2. 你需要"表达式"窗口,默认情况下不可用
  3. 重新评估需要用户互动
  4. 代码类似于C#:

    public class Program {
    
        public static void main(String[] args)
        {
            Program p = new Program();
            System.out.println(p.member);
            System.console().readLine();
            System.out.println(p.member);
            System.console().readLine();
        }
    
        private int member;
    
        public int getMember()
        {
            return member++;
        }
    }
    

    截图:

    Changed value in Eclipse