AYUDA .NET

C# Switch Statement (Cómo funciona para los desarrolladores)

Publicado en 12 de diciembre, 2023
Compartir:

En el vasto panorama de los lenguajes de programación, la mejora de la legibilidad y la eficiencia del código es primordial, y el lenguaje C# se erige como un incondicional, ya que proporciona diversas construcciones para ayudar en sus necesidades de codificación. Entre su arsenal de potentes herramientas, el "Sentencia Switch en C#"destaca de forma prominente. Esta completa guía explorará las sutiles complejidades de las mismas dentro del lenguaje C#. Profundizaremos en sus múltiples usos e iluminaremos su aplicación práctica a través de un escenario real que implicaIronPDFla traducción es una biblioteca versátil de C# para la generación de PDF. Este viaje no sólo pretende desentrañar su mecánica, sino también subrayar su importancia en el panorama más amplio del desarrollo con C#.

1. Entendiendo la Declaración Switch

La sentencia switch en C# es una sentencia de flujo de control que permite a los desarrolladores escribir código más limpio y conciso cuando se trata de múltiples condiciones. Resulta especialmente útil cuando se desea realizar distintas acciones en función del valor de una variable concreta.

Esto lo convierte en una alternativa perfecta a las declaraciones if-else cuando la palabra clave/variable es el foco central, ya que aumenta la legibilidad y la capacidad de mantenimiento del código. A diferencia de una sentencia if-else, que puede dar lugar a estructuras anidadas y a una posible complejidad del código, la sentencia switch ofrece una alternativa más organizada. Resulta especialmente útil cuando se trabaja con una variable que debe desencadenar distintas acciones en función de su valor.

Veamos ahora con más detalle el papel de la ruptura en el contexto de una sentencia switch. En C#, la sentencia break se utiliza para terminar la ejecución de un bloque de código asociado a un caso particular dentro del bloque switch. Cuando un caso match o switch coincide, y se ejecuta el bloque de código correspondiente a ese caso, la sentencia break es crucial para evitar que se evalúen los casos posteriores. Si desea incorporar el comportamiento fall-through dentro de su sentencia, debe utilizar la sentencia goto en lugar de break.

He aquí la estructura básica de una sentencia switch en C#:

switch (variable)
{
    case a:
        // Code to be executed if variable equals value1
        break;
    case c:
        // Code to be executed if variable equals value2
        break;
    // More cases can be added as needed
    default:
        // Default Case to be executed if none of the cases match
        break;
}
switch (variable)
{
    case a:
        // Code to be executed if variable equals value1
        break;
    case c:
        // Code to be executed if variable equals value2
        break;
    // More cases can be added as needed
    default:
        // Default Case to be executed if none of the cases match
        break;
}
Select Case variable
	Case a
		' Code to be executed if variable equals value1
	Case c
		' Code to be executed if variable equals value2
	' More cases can be added as needed
	Case Else
		' Default Case to be executed if none of the cases match
End Select
VB   C#

Ahora, vamos a explorar los diferentes tipos de sentencias switch y sus casos de uso.

2. Tipos de sentencias Switch y sus usos

2.1. Declaración de conmutación simple

Esta es la forma más básica de una sentencia switch. Compara la variable con valores constantes y ejecuta el bloque de código asociado al primer valor o caso coincidente. Si no se encuentra ninguna coincidencia, se ejecuta el bloque de código por defecto.

int day = 3;
switch (day)
{
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    // More cases...
    default:
        Console.WriteLine("Invalid day");
        break;
}
int day = 3;
switch (day)
{
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    // More cases...
    default:
        Console.WriteLine("Invalid day");
        break;
}
Dim day As Integer = 3
Select Case day
	Case 1
		Console.WriteLine("Monday")
	Case 2
		Console.WriteLine("Tuesday")
	' More cases...
	Case Else
		Console.WriteLine("Invalid day")
End Select
VB   C#

2.2. Declaración Switch con patrones(C# 7.0 y versiones posteriores)

C# 7.0 introdujo la concordancia de patrones case, lo que permitió una sentencia switch más expresiva y flexible. Una expresión de coincidencia de patrones puede incluir patrones de tipo, patrones de propiedades y más, lo que hace que el código sea aún más legible.

object obj = "Hello";
switch (obj)
{
    case string s:
        Console.WriteLine($"String of length {s.Length}");
        break;
    case int i:
        Console.WriteLine($"Integer: {i}");
        break;
    // More cases...
    default:
        Console.WriteLine("Other type");
        break;
}
object obj = "Hello";
switch (obj)
{
    case string s:
        Console.WriteLine($"String of length {s.Length}");
        break;
    case int i:
        Console.WriteLine($"Integer: {i}");
        break;
    // More cases...
    default:
        Console.WriteLine("Other type");
        break;
}
Dim obj As Object = "Hello"
Select Case obj
'INSTANT VB TODO TASK: The following 'case' pattern variable is not converted by Instant VB:
'ORIGINAL LINE: case string s:
	Case String s
		Console.WriteLine($"String of length {s.Length}")
'INSTANT VB TODO TASK: The following 'case' pattern variable is not converted by Instant VB:
'ORIGINAL LINE: case int i:
	Case Integer i
		Console.WriteLine($"Integer: {i}")
	' More cases...
	Case Else
		Console.WriteLine("Other type")
End Select
VB   C#

2.3. Expresión de cambio(C# 8.0 y posterior)

En C# 8.0, se introduce una forma nueva y más concisa de la sentencia switch: las expresiones switch. Pueden utilizarse en lugares en los que se necesita la expresión constante de un valor, lo que hace que el código sea más corto y elegante.

int day = 2;
string result = day switch
{
    1 => "Monday",
    2 => "Tuesday",
    // More cases...
    _ => "Invalid day"
};
Console.WriteLine(result);
int day = 2;
string result = day switch
{
    1 => "Monday",
    2 => "Tuesday",
    // More cases...
    _ => "Invalid day"
};
Console.WriteLine(result);
Dim day As Integer = 2
Dim tempVar As String
Select Case day
	Case 1
		tempVar = "Monday"
	Case 2
		tempVar = "Tuesday"
	' More cases...
	Case Else
		tempVar = "Invalid day"
End Select
Dim result As String = tempVar
Console.WriteLine(result)
VB   C#

Ahora que tenemos una sólida comprensión de las sentencias switch, vamos a ver cómo se pueden aplicar en un escenario del mundo real utilizando IronPDF en C#.

3. Presentación de IronPDF en C#

IronPDF es una popular biblioteca de C# que permite a los desarrolladores generar y manipular documentos PDF con facilidad. Simplifica las tareas relacionadas con la creación, edición y renderización de archivos PDF. Exploremos cómo se puede emplear la sentencia switch con IronPDF para mejorar la funcionalidad y la organización de su codificación.

3.1. Uso de la sentencia Switch con IronPDF

Supongamos que está trabajando en un sistema de gestión de documentos en el que necesita generar diferentes tipos de PDF en función del caso de uso del contenido de un documento. A continuación se explica cómo aprovechar la sentencia switch con IronPDF:

using IronPdf;
using System;
class generatePDF {
    public static void Main(String [] args)
    {
        var renderer = new ChromePdfRenderer();
        string mystring = null;
        Console.WriteLine("Enter your input : ");
        Console.WriteLine("Enter 'I' for Invoice");
        Console.WriteLine("Enter 'R' for Report");
        mystring = Console.ReadLine();
        switch (mystring)
        {
            case "R":
                var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");
                pdf.SaveAs("Report.pdf");
                break;
            case "I":
                var pdfi = renderer.RenderHtmlFileAsPdf("report.html");
                pdfi.SaveAs("Invoice.pdf");
                break;
        }
    }
}
using IronPdf;
using System;
class generatePDF {
    public static void Main(String [] args)
    {
        var renderer = new ChromePdfRenderer();
        string mystring = null;
        Console.WriteLine("Enter your input : ");
        Console.WriteLine("Enter 'I' for Invoice");
        Console.WriteLine("Enter 'R' for Report");
        mystring = Console.ReadLine();
        switch (mystring)
        {
            case "R":
                var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");
                pdf.SaveAs("Report.pdf");
                break;
            case "I":
                var pdfi = renderer.RenderHtmlFileAsPdf("report.html");
                pdfi.SaveAs("Invoice.pdf");
                break;
        }
    }
}
Imports IronPdf
Imports System
Friend Class generatePDF
	Public Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()
		Dim mystring As String = Nothing
		Console.WriteLine("Enter your input : ")
		Console.WriteLine("Enter 'I' for Invoice")
		Console.WriteLine("Enter 'R' for Report")
		mystring = Console.ReadLine()
		Select Case mystring
			Case "R"
				Dim pdf = renderer.RenderHtmlFileAsPdf("invoice.html")
				pdf.SaveAs("Report.pdf")
			Case "I"
				Dim pdfi = renderer.RenderHtmlFileAsPdf("report.html")
				pdfi.SaveAs("Invoice.pdf")
		End Select
	End Sub
End Class
VB   C#

Este programa C# utiliza la biblioteca IronPDF para generar dinámicamente archivos PDF basados en la entrada del usuario. Se pide al usuario que introduzca "I" para Factura o "R" para Informe. En función de la entrada, el programa utiliza la clase ChromePdfRenderer para renderizar el archivo HTML correspondiente("invoice.html" para Informe o "report.html" para Factura) en formato PDF. A continuación, el PDF generado se guarda con los nombres de archivo adecuados, "Informe.pdf" para el Informe y "Factura.pdf" para la Factura. Este enfoque ofrece una forma flexible e interactiva de generar tipos específicos de documentos PDF a través de una interfaz de consola.

3.2. Ejemplo de informe

En el siguiente ejemplo, crearemos un informe a partir de los datos introducidos por el usuario.

**Entrada de la consola

Sentencia Switch en C#(Cómo funciona para los desarrolladores) Figura 1 - Entrada del usuario en la consola (informe)

**PDF de salida

Sentencia Switch en C#(Cómo funciona para los desarrolladores) Figura 2 - Informe PDF de salida

3.3. Ejemplo de factura

En este ejemplo de enunciado de caso, crearemos una factura utilizando la entrada del usuario y una sentencia switch.

**Entrada de la consola

Sentencia Switch en C#(Cómo funciona para los desarrolladores) Figura 3 - Entrada del usuario en la consola (Factura)

**PDF de salida

Sentencia Switch en C#(Cómo funciona para los desarrolladores) Figura 4 - PDF de salida (Factura)

4. Conclusión

En conclusión, la sentencia switch de C# destaca como una sólida herramienta de flujo de control que ofrece a los desarrolladores un enfoque más organizado y conciso para manejar múltiples condiciones en comparación con las sentencias if-else tradicionales. Al categorizar la ejecución del código en función de los valores de las variables, las sentencias switch pueden contribuir a mejorar la legibilidad y la capacidad de mantenimiento del código.

La versatilidad de las sentencias switch se demuestra a través de varios tipos, incluyendo conmutadores simples, bloques de conmutación basados en patrones y expresiones de conmutación, cada una de ellas adaptada a escenarios de codificación específicos.

La integración de la biblioteca IronPDF ejemplifica la aplicación práctica de las sentencias switch en la generación de documentos PDF dinámicos basados en la entrada del usuario y muestra cómo puede aprovecharse esta función en situaciones reales para mejorar la flexibilidad y eficacia de la codificación en C#.

Para explorar las capacidades deIronPDF para obtener más información sobre la conversión de HTML a PDF, visite el sitio webTutoriales de IronPDF.

< ANTERIOR
Visual Studio Code C# (Cómo funciona para desarrolladores)
SIGUIENTE >
Principios sólidos C# (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.12 acaba de salir

Descarga gratuita de NuGet Descargas totales: 11,622,374 Ver licencias >