[C#] El operador ++, prefijo ó sufijo?

2 07 2009

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++;

El valor de “x = 0”;

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!.

Etiquetas de Technorati: ,,

Acciones

Información

Un comentario

3 07 2009
darkchicles

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

Deja un comentario