X++ will increment the value, but then return its old value.
So in this case:
static void Main(string[] args)
{
int x = 10;
x = x++;
Console.WriteLine(x);
}
You have X at 11 just for a moment, then it gets back to 10 because 10 is the return value of (x++).
You could instead do this for the same result:
static int plusplus(ref int x)
{
int xOld = x;
x++;
return xOld;
}
static void Main(string[] args)
{
int x = 10;
x = plusplus(x);
Console.WriteLine(x);
}
It is also worth mentioning that you would have your expected result of 11 if you would have done:
static void Main(string[] args)
{
int x = 10;
x = ++x;
Console.WriteLine(x);
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…