This article is currently in the process of being translated into Spanish (~99% done).
Increment/decrement operators
Cuando estamos tratando con valores, específicamente el tipo numérico, muy probablemente encuentres la necesidad de agregar o substraer 1. Ciertamente esto es muy fácil de hacer - solo tomas el valor, agregar 1 y luego lo asignas de vuelta a la variable original. Aquí un ejemplo:
int userAge = 41;
userAge = userAge + 1;
La variable userAge ahora tiene el valor 42 en vez de 41 - fácil! Por supuesto tú puedes hacer lo mismo cuando quieres substraer por 1:
userAge = userAge - 1;
Prefijo incrementar/decrementar
Sin embargo, C# tiene un operador mucho más corto para atender este trabajo: El operador de incremento/descremento. Este consiste simplemente de dos signos de más o dos signos de menos justo uno después del otro. Aquí está el primer ejemplo, reescrito para usar este operador:
int userAge = 41;
userAge++;
Console.WriteLine("Age of user: " + userAge);
¡El resultado es exactamente el mismo, pero mire cuanto más corta es! Y podemos hacerla aún más corta, porque por supuesto este operador puede ser usado dentro de una declaración existente.
int userAge = 41;
Console.WriteLine("Age of user: " + userAge++);
Pero espere un minuto - cuando pruebe éste, verá que userAge aún es mostrada como 41. ¿Porqué? Por que estamos usando la versión posfija del operador, el cual es evaluado DESPUÉS de la declaración que la rodea. En otras palabras, la línea es impresa antes de que el valor sea incrementado. Este será el comportamiento que quiera en algunos casos, pero no es óptimo para este caso específico. Lo que necesita es el operador de incremento prefijo.
Incremento/decremento prefijo
Este operador se mira exactamente igual a la versión posfija, pero en vez de aparecer después de la variable, aparecerá antes, intruyendo al compilador para evaluarla antes de evaluar la declaración que la reodea.
int userAge = 41;
Console.WriteLine("Age of user: " + ++userAge);
Esto tendrá el efecto deseado, donde userAge es incrementada antes de que la línea sea impresa. Ahora, ésto parecerá un poco confuso con tres signos +, pero el primero es para la concatenación de cadenas, mientras que los dos últimos son el operador actual. Si lo prefiere, puede envolver el operador de incremento con paréntesis para hacer más claro a donde pertenece:
Console.WriteLine("Age of user: " + (++userAge));
Eso depende de lo que usted decida - ¡trabaja exactamente igual!
Y por supuesto, puede usar el operador de decremento exactamente en la misma forma como se ilustra arriba. Aquí está la versión posfija:
int userAge = 41;
Console.WriteLine("Age of user: " + (userAge--));
Y la versión prefija:
int userAge = 41;
Console.WriteLine("Age of user: " + (--userAge));
Resumen
Entonces, estos fueron los operadores de incremento y decremento. Son excelentes para un caso de uso muy específico: Cuando quiere incrementar o descrementar un valor por 1. En el siguiente capítulo, veremos el operador de adición asignación, el cual se parece mucho a este, pero tiene un uso ligeramente más amplio.
Como con varios otros operadores de C#, este cae dentro del término "dulce sintáctico" - la misma tarea puede ser llevada a cabo sin este operador específico, pero con el, su código se acorta. Si el código se vuelve más legible es algo muy subjetivo - a algunas personas les gusta, mientras que otras sienten que sus códigos se vuelven más fácil de leer y entender sin ellos. ¡Es su decisión!