Documentos de Académico
Documentos de Profesional
Documentos de Cultura
C#)
Artículo
21/07/2022
Tiempo de lectura: 6 minutos
13 colaboradores
Las acciones que realiza un programa se expresan en instrucciones. Entre las acciones
comunes se incluyen declarar variables, asignar valores, llamar a métodos, recorrer
colecciones en bucle y crear una bifurcación a uno u otro bloque de código, en función de
una condición determinada. El orden en el que se ejecutan las instrucciones en un programa
se denomina flujo de control o flujo de ejecución. El flujo de control puede variar cada vez
que se ejecuta un programa, en función de cómo reacciona el programa a la entrada que
recibe en tiempo de ejecución.
Una instrucción puede constar de una sola línea de código que finaliza en un punto y coma
o de una serie de instrucciones de una sola línea en un bloque. Un bloque de instrucciones
se incluye entre llaves {} y puede contener bloques anidados. En el código siguiente se
muestran dos ejemplos de instrucciones de una sola línea y un bloque de instrucciones de
varias líneas:
C#Copiar
static void Main()
{
// Declaration statement.
int counter;
// Assignment statement.
counter = 1;
Tipos de instrucciones
En la tabla siguiente se muestran los distintos tipos de instrucciones de C# y sus palabras
clave asociadas, con vínculos a temas que incluyen más información:
Instrucciones de declaración
En el código siguiente se muestran ejemplos de declaraciones de variables con y sin una
asignación inicial, y una declaración constante con la inicialización necesaria.
C#Copiar
// Variable declaration statements.
double area;
double radius = 2;
Instrucciones de expresión
En el código siguiente se muestran ejemplos de instrucciones de expresión, que incluyen la
asignación, la creación de objetos con asignación y la invocación de método.
C#Copiar
// Expression statement (assignment).
area = 3.14 * (radius * radius);
Instrucción vacía
En los ejemplos siguientes se muestran dos usos de una instrucción vacía:
C#Copiar
void ProcessMessages()
{
while (ProcessMessage())
; // Statement needed here.
}
void F()
{
//...
if (done) goto exit;
//...
exit:
; // Statement needed here.
}
Instrucciones insertadas
Algunas instrucciones, por ejemplo, las instrucciones de iteración, siempre van seguidas de
una instrucción insertada. Esta instrucción insertada puede ser una sola instrucción o varias
instrucciones incluidas entre llaves {} en un bloque de instrucciones. Las instrucciones
insertadas de una sola línea también pueden ir entre llaves {}, como se muestra en el
siguiente ejemplo:
C#Copiar
// Recommended style. Embedded statement in block.
foreach (string s in System.IO.Directory.GetDirectories(
System.Environment.CurrentDirectory))
{
System.Console.WriteLine(s);
}
// Not recommended.
foreach (string s in System.IO.Directory.GetDirectories(
System.Environment.CurrentDirectory))
System.Console.WriteLine(s);
Una instrucción insertada que no está incluida entre llaves {} no puede ser una instrucción
de declaración o una instrucción con etiqueta. Esto se muestra en el ejemplo siguiente:
C#Copiar
if(pointB == true)
//Error CS1023:
int radius = 5;
C#Copiar
if (b == true)
{
// OK:
System.DateTime d = System.DateTime.Now;
System.Console.WriteLine(d.ToLongDateString());
}
C#Copiar
foreach (string s in System.IO.Directory.GetDirectories(
System.Environment.CurrentDirectory))
{
if (s.StartsWith("CSharp"))
{
if (s.EndsWith("TempFolder"))
{
return s;
}
}
}
return "Not found.";
Instrucciones inaccesibles
Si el compilador determina que el flujo de control no puede alcanzar nunca una instrucción
determinada bajo ninguna circunstancia, producirá una advertencia CS0162, como se
muestra en el ejemplo siguiente:
C#Copiar
// An over-simplified example of unreachable code.
const int val = 5;
if (val < 4)
{
System.Console.WriteLine("I'll never write anything."); //CS0162
}
Consulte también
Guía de programación de C#
Palabras clave de instrucciones
Operadores y expresiones de C#
Contenido recomendado
El sistema de tipos de C#
Aprenda a crear tipos en C#, como tuplas, registros, tipos de valor y tipos de
referencia.
Polimorfismo
Obtenga información sobre el polimorfismo, un concepto clave en lenguajes
de programación orientados a objetos como C#, que describe la relación
entre las clases base y derivadas.
Palabra clave class: Referencia de C#
En todas las filas de la tabla, excepto en las dos últimas, cada palabra clave de tipo
de C# de la columna situada más a la izquierda es un alias del tipo de .NET
correspondiente. La palabra clave y el nombre de tipo de .NET son intercambiables.
Por ejemplo, en las declaraciones siguientes se declaran variables del mismo tipo:
C#Copiar
int a = 123;
System.Int32 b = 123;
Los tipos nint y nuint de las dos últimas filas de la tabla son enteros de tamaño
nativo. A partir de C# 9.0, puede usar las palabras clave nint y nuint para
definir enteros de tamaño nativo. Son enteros de 32 bits cuando se ejecutan en un
proceso de 32 bits, o bien enteros de 64 bits cuando se ejecutan en un proceso de
64 bits. Se pueden usar para escenarios de interoperabilidad, bibliotecas de bajo
nivel y para optimizar el rendimiento en escenarios en los que se utilice la
aritmética de enteros.
Literales enteros
Los literales enteros pueden ser
C#Copiar
var decimalLiteral = 42;
var hexLiteral = 0x2A;
var binaryLiteral = 0b_0010_1010;
Nota
Nota
C#Copiar
byte a = 17;
byte b = 300; // CS0031: Constant value '300' cannot be converted to a 'byte'
Como se muestra en el ejemplo anterior, si el valor del literal no está dentro del
intervalo del tipo de destino, se produce un error del compilador CS0031 .
También puede usar una conversión para convertir el valor representado por un
literal entero en un tipo que no sea el determinado del literal:
C#Copiar
var signedByte = (sbyte)42;
var longVariable = (long)42;
Conversiones
Puede convertir un tipo numérico entero en cualquier otro tipo numérico entero. Si
el tipo de destino puede almacenar todos los valores del tipo de origen, la
conversión es implícita. De lo contrario, debe usar una expresión Cast para realizar
una conversión explícita. Para obtener más información, consulte Conversiones
numéricas integradas.
C#Copiar
Console.WriteLine($"size of nint = {sizeof(nint)}");
Console.WriteLine($"size of nuint = {sizeof(nuint)}");
C#Copiar
Console.WriteLine($"nint.MinValue = {nint.MinValue}");
Console.WriteLine($"nint.MaxValue = {nint.MaxValue}");
Console.WriteLine($"nuint.MinValue = {nuint.MinValue}");
Console.WriteLine($"nuint.MaxValue = {nuint.MaxValue}");
o Para nint: entre Int32.MinValue y Int32.MaxValue.
o Para nuint: entre UInt32.MinValue y UInt32.MaxValue.
C#Copiar
nint a = 42
nint a = (nint)42;
Tipos enteros
Literales enteros
Vea también
Referencia de C#
Tipos de valor
Tipos de punto flotante
Cadenas con formato numérico estándar
Valores numéricos en .NET