Ste*_*pUp 3 .net c# ref pass-by-reference post-increment
我发现了一个非常酷的编译器功能.但是,我无法理解这种行为的逻辑.
static int IncrementValue(ref int i) { return i++;}
Run Code Online (Sandbox Code Playgroud)
和主要方法:
static void Main(string[] args)
{
int a = 2;
int b = IncrementValue(ref a);
Console.WriteLine(a+b);
}
Run Code Online (Sandbox Code Playgroud)
输出为5.
我的问题是:
既然你把它写成了;
return i++
Run Code Online (Sandbox Code Playgroud)
这仍将2作为值返回,但它会在表达式之后增加a值3.
如果你把它写成;
return ++i
Run Code Online (Sandbox Code Playgroud)
这将返回递增的值,这将是3,并且因为a将3在执行它之后,它将6作为结果打印.
进一步阅读
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |