Почему мое присвоение целого числа недействительно? - PullRequest
0 голосов
/ 18 июня 2020

Это мой тестовый код, он очень простой:

  class Program
    {
        static void Main(string[] args)
        {
            int number = 0;
            int newNumber = number++;
            Console.WriteLine("the old number is {0},the new number is:{1}", number, newNumber);
            Console.Read();
        }
    }

, тогда как результат вывода: «старое число - 1, новое -: 0», я думаю, что результат противоположен Я хочу.

Ответы [ 3 ]

3 голосов
/ 18 июня 2020

при использовании оператора постфиксного приращения ++ сначала возвращается исходное значение, затем увеличивается. Чтобы получить то, что вы хотите, используйте оператор приращения префикса, например

 int newNumber = ++number;

Но если вы не хотите изменять number, не используйте оператор увеличения, вместо этого используйте сложение / вычитание.

2 голосов
/ 18 июня 2020

Это потому, что number++ обновляет значение числа, увеличивая его ( PostFix ). Это делается после использования исходного значения в выражении, которое оно используется. Чтобы добиться желаемого поведения, вы можете использовать:

int number = 0;
int newNumber = number + 1;
1 голос
/ 18 июня 2020

Здесь вы использовали номер ++ , который является оператором приращения поста. Сначала он присваивает значение, а затем увеличивает его значение. Вы можете достичь желаемого результата двумя способами:

  1. Используйте оператор предварительного увеличения

    int newNumber = ++ number;

  2. Просто добавив 1 к числовой переменной, а затем присвоив ей newNumber

    int newNumber = number + 1;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...