Объясните пожалуйста результат

Однокурсник один спросил меня что будет, если написать следующий код:

            int i = 0;
            int rez =   i   i  ;
            Console.WriteLine(rez);

Итак, внимание, вопрос: Почему не 1????? Ведь по сути мы к переменной rez прибавляем сначала i, а это 1, а потом ещё i (а это 0, потому что тут постинкремент!!!)! Так в чём подвох?

Потому что ты работаешь с одной и той же переменной. После первого инкремента i у тебя переменная i стала равна 1. Затем, ты правду говоришь, постинкремент роли не сыграет, однако твоя переменная УЖЕ равна 1, так что ты во второй раз по сути прибавляешь 1. Результат - 2.

Вот если ты напишешь так:

public class Program
    {
        public static void Main()
        {
            int i = 0, j = 0;
            int rez =   i   j  ;
            Console.WriteLine(rez);
            Console.ReadKey();
        }
    }

То получится то о чём ты и говорил. В таком случае вторая переменная j так и останется 0.