【发布时间】:2015-10-07 02:58:41
【问题描述】:
【问题讨论】:
-
哪个 IDE?哪种编程语言?图片不显示评估结果。
-
我尽量让它成为一个一般性问题。 (在这种情况下是 intellij 和 java)。
【问题讨论】:
您的观察不能一概而论。 IDE 通常会在调试期间进行更改,尤其是在属性具有副作用的情况下。
以下 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++ 语句而增加。
在 Java 和 Eclipse 中,做出相同的证明有点困难,原因如下:
代码类似于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++;
}
}
还有截图:
【讨论】: