Un post rápido, muchas veces no tomamos en cuenta las especificaciones de los compiladores que usamos, y como mucho aprendimos C# después de usar C o C++, cometemos algunos errores que podemos evitar si leemos un poco. Aquí un ejemplo común, mi compañero Ivan me dice que esto es lo mismo:
int x = 0; int t = 0; int y = x++; int z = ++t;
La pregunta seria ¿los valores de “y” y “z” serán los mismos?.
La respuesta es NO, ¿Por qué?.
R: El incremento prefijo hace que el resultado sea el valor del operando después de haber sido incrementado y el postfijo hace que el resultado sea valor del operando antes de haber sido incrementado.
Entonces si mostramos los valores de “y” y “z”, tenemos que:
“y = 0” y “z = 1”
Ahora lo que les decía de los compiladores, que pasa si hago esto:
int x = 0; int y = x++;
¿Cual es el valor de “x” y cual es el valor de “y”?
En base a la respuesta que mencione arriba el valor de “x = 1” y el valor de “y = 0 ”.
Por lo tanto si hago esto:
int x = 0;
x = x++;
Si no me creen pregúntenle al compilador de C#. Por tal motivo puedo concluir que debemos de leer un poco antes de hacer uso de este tipo de operadores, porque muchas veces la solución a nuestro problema puede estar justo al frente de nosotros!.









Buen mini post, Exactamente sucede lo mismo con C++, =P~ aunque es dificil de explicar .. por alli encontre un buen ejemplo donde lo explicaban con piedritas XD pero no quiero buscarlo.. asi que.. pss creanle a C# y a nor =D