如果通过调用方法给变量赋值,是否每次使用该变量时都执行该方法?
本文关键字:变量 方法 执行 是否 调用 赋值 如果 | 更新日期: 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
两次