【问题标题】:C# Return statement with auto-increment value [duplicate]具有自动递增值的 C# 返回语句 [重复]
【发布时间】:2021-03-14 13:58:19
【问题描述】:

这两个示例没有产生相同的值是否有原因。 C# 在返回之前似乎不会自动递增。

        nextNumber++;
        return nextNumber;

 return nextNumber++;

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

【问题讨论】:

  • 后自增运算符在返回后执行。
  • 这不是错误。如果你想要相同的结果,它应该是“return ++nextNumber”。另一种情况是在返回值后进行加法。

标签: c# return auto-increment


【解决方案1】:

不,看看这个:

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-

后缀自增运算符 x++ 和前缀自增运算符 ++x。

查看文档中的示例。

【讨论】:

  • 谢谢,我从来没有意识到这一点。
猜你喜欢
  • 2019-04-19
  • 1970-01-01
  • 2012-05-04
  • 2014-01-29
  • 1970-01-01
  • 1970-01-01
  • 2014-02-14
  • 2012-09-26
  • 2018-10-17
相关资源
最近更新 更多