C# Return 自增语句

C# Return statement with auto-increment value

这 2 个示例不产生相同值的原因是什么? C#好像没有在返回前自增。

        nextNumber++;
        return nextNumber;

 return nextNumber++;

这是一个错误吗? 我在用 微软 Visual Studio 社区 2019 版本 16.7.6

不,看看这个:

using System;
                    
public class Program
{
    public static void Main()
    {
        Console.WriteLine(t1(1));
        Console.WriteLine(t2(1));
        Console.WriteLine(t3(1));
    }
    
    private static int  t1(int nextNumber)
    {
         return nextNumber++;       
    }
    
    private static int  t2(int nextNumber)
    {
        nextNumber++;
        return nextNumber;  
    }
    
    private static int t3(int nextNumber)
    {
        return ++nextNumber;    
    }
}

https://dotnetfiddle.net/4fna9w

输出:

1
2
2

参见:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/arithmetic-operators#increment-operator-

the postfix increment operator, x++, and the prefix increment operator, ++x.

查看文档中的示例。