如果通过调用方法分配变量,那么每次使用变量时都会执行该方法吗?

时间:2016-08-29 12:32:50

标签: c#

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

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

在其他地方,我将该方法称为分配变量的方式,如下所示:

var first = Method();
var second = first + first;

在第二行,方法()被调用两次? (每次提及一次'首先提及

方法()刚刚调用一次,其结果存储在&#39; <&#39; 中,并且存储的结果用于计算& #39;第一个+第一个&#39;

我知道之前有人问过,但我没有找到有关C#的具体回答。

提前致谢。

2 个答案:

答案 0 :(得分:1)

当使用函数调用初始化变量时,

只调用一次方法。之后使用变量时不会调用它。

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

答案 1 :(得分:0)

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

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

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两次