x => x + 1和x => x + = 1之间有区别吗?

时间:2019-06-08 19:56:13

标签: c# lambda

我目前正在学习函数编程,我想知道这些函数之间是否有区别。

Func<int, int> incrementByOne = x => x += 1;
Func<int, int> incrementByOne2 = x => x + 1;

1 个答案:

答案 0 :(得分:8)

没有区别。因为:

  1. int是一种值类型,因此按值传递(正在复制),因此在x => x += 1中更改x不会影响源(无副作用)
  2. +=返回加法的结果,因此与+相同