如果通过调用方法给变量赋值,是否每次使用该变量时都执行该方法?

本文关键字:变量 方法 执行 是否 调用 赋值 如果 | 更新日期: 2023-09-27 18:04:28

假设我有一个返回(例如)整数的方法,如下所示:

int Method()
{
  var result = 1 + 1;
  return result;
}

在其他地方,我调用这个方法来赋值一个变量,像这样:

var first = Method();
var second = first + first;
在第二行中,Method()是否被调用了两次?(每次提到'first'一个)

还是Method()只调用一次,其结果存储在'first'中,该存储结果用于计算'first + first'?

我知道以前有人问过这个问题,但是我没有找到关于c#的具体答案。

如果通过调用方法给变量赋值,是否每次使用该变量时都执行该方法?

方法仅在使用函数调用初始化变量时调用一次。当您在之后使用该变量时,它不会被调用。

var first = Method();       // Evaluates to 2
var second = first + first; // 2 +2 = 4

一旦调用方法并保存返回值,之后使用保存的返回值将不会再次调用该方法。

在您提供的示例中,方法将被调用一次

var first = Method(); // Method invoked & return value stored to first
var second = first + first; // Now results is summed up instead of method call

如果你真的想调用方法两次。不要对存储值求和,而是手动调用方法两次。

var second = Method() + Method();

上面的代码段将调用Method两次