Instrucciones de C#

Sugerencia

Este artículo forma parte de la sección Aspectos básicos de los desarrolladores que ya conocen al menos un lenguaje de programación y están aprendiendo C#. Si no está familiarizado con la programación, comience primero con los tutoriales de introducción . Para obtener una sintaxis de instrucción completa, vea Instrucciones en la especificación del lenguaje C#.

¿Viene de otro idioma? Las declaraciones, las condiciones, los bucles y las devoluciones pueden resultar familiares. C# usa su propia sintaxis y clasificación para estas características, que se presenta en este artículo.

Una instrucción es un comando completo: "haga esto". Juntos, las instrucciones de un programa forman una receta que el programa sigue de principio a fin. La mayoría de las instrucciones se ejecutan en secuencia. Las ramas eligen qué pasos ejecutar, y los bucles repiten pasos.

En este ejemplo se declara una cantidad, se muestra y, a continuación, se usa una if instrucción para decidir si se va a reponer:

int quantity = 5;
Console.WriteLine($"Quantity: {quantity}"); // => Quantity: 5

if (quantity < 10)
{
    quantity = 10;
    Console.WriteLine("Restocked"); // => Restocked
}

Console.WriteLine($"Quantity: {quantity}"); // => Quantity: 10

Lea el ejemplo como comandos completos antes de examinar sus partes. La declaración, la primera llamada a Console.WriteLine, toda la construcción if y la última llamada a Console.WriteLine son instrucciones. El bloque dentro de la if instrucción contiene dos instrucciones más.

Las instrucciones a menudo contienen expresiones

Las instrucciones a menudo contienen expresiones, que son fragmentos de código que generan valores. En el ejemplo anterior, todo el constructo if es una instrucción. Su condición, quantity < 10, es una expresión que genera true o false.

Una instrucción de declaración introduce una variable local o una constante. Una expresión de inicializador puede proporcionar su primer valor:

int quantity = 5;

La línea completa es una instrucción de declaración. El inicializador 5 es una expresión dentro de esa instrucción.

Una expresión de asignación almacena un valor en una variable, propiedad, indexador u otra ubicación de almacenamiento. C# permite que una expresión de asignación forme una instrucción de expresión:

quantity = 10;

Esta instrucción realiza una acción en lugar de simplemente calcular un valor. Las llamadas a métodos y las operaciones de incremento son otros ejemplos comunes de instrucciones de expresión:

Console.WriteLine("Restocking");
quantity++;

Solo las siguientes formas de expresión pueden ser sentencias de expresión:

  • Expresiones de asignación
  • Expresiones de invocación de método
  • Expresiones de creación de objetos
  • Expresiones de incremento y decremento de prefijo o postfijo
  • await expresiones

No todas las expresiones pueden constituir por sí solas una sentencia. Por ejemplo, quantity + 1; calcula un valor, pero no lo usa. No es una sentencia válida.

Aquí tienes una definición práctica útil: una sentencia es más o menos como una oración completa en inglés, mientras que una expresión es como una frase. Esta distinción le ayuda a comprender la terminología formal y las explicaciones que encontrará en la documentación y las especificaciones, aunque la codificación normal rara vez requiere que recuerde la distinción conscientemente.

Agrupar sentencias en bloques

Un bloque agrupa cero o más instrucciones entre llaves ({ y }). C# trata el grupo como si fuera una sola sentencia. En el ejemplo inicial, la instrucción if puede ejecutar tanto la asignación como la llamada a Console.WriteLine porque un bloque las agrupa en un único cuerpo. Los bloques pueden anidar dentro de otros bloques.

Las instrucciones de selección e iteración denominan a su cuerpo una instrucción anidada. Ese cuerpo puede ser una instrucción sin llaves ni un bloque que agrupa varias instrucciones.

Se prefiere un bloque incluso cuando un cuerpo contiene solo una instrucción. Las llaves muestran qué instrucciones pertenecen al cuerpo y evitan que las modificaciones posteriores coloquen accidentalmente una instrucción fuera de él.

Los bloques definen el ámbito de una variable

Las variables declaradas en un bloque están en el ámbito desde su declaración hasta el final de ese bloque. Un bloque anidado puede usar variables declaradas por un bloque envolvente, pero el bloque envolvente no puede usar variables declaradas solo en el bloque anidado:

int outerValue = 10;

if (outerValue > 0)
{
    int innerValue = outerValue * 2;
    Console.WriteLine(innerValue); // => 20
}

// innerValue isn't in scope here.

Elegir un enunciado para la tarea

Después de reconocer instrucciones como comandos, puede elegir entre sus diferentes tipos por propósito:

Especificación del lenguaje C#

Para obtener más información, vea la sección Instrucciones de la especificación del lenguaje C#.

Véase también