Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Los enums, abreviatura de enumeración, son una potente función que permite a los desarrolladores establecer un conjunto de constantes con nombre. Estas constantes hacen que el código sea más legible y fácil de mantener al proporcionar nombres significativos para los valores. En este artículo, exploraremos los conceptos básicos y avanzados de los enums en C# a través de varios ejemplos y explicaciones. Nuestro objetivo es proporcionar una comprensión exhaustiva de los enums y de cómo pueden utilizarse eficazmente en sus aplicaciones de C# utilizando la herramientaBiblioteca IronPDF para la generación de PDF en .NET.
Un enum es un tipo de valor en C# que permite que una variable sea un conjunto de constantes predefinidas, cada una denominada miembro de un enum. La palabra clave enum se utiliza para declarar un tipo de enumeración, proporcionando una forma de agrupar valores constantes bajo un mismo nombre. Los Enums mejoran la legibilidad del código y reducen los errores causados por la transmisión de valores incorrectos.
enum Season { Spring, Summer, Autumn, Winter }
enum Season { Spring, Summer, Autumn, Winter }
Friend Enum Season
Spring
Summer
Autumn
Winter
End Enum
En el código anterior, Season es un tipo enum con cuatro miembros: Primavera, Verano, Otoño e Invierno. Al definir este enum, ahora podemos crear variables de tipo Season que sólo pueden contener uno de estos cuatro valores.
Por defecto, el tipo subyacente de un enum en C# es int, conocido como el tipo integral subyacente, y los valores enteros de los miembros del enum empiezan en 0. El valor entero de cada miembro se incrementa en 1 desde el miembro anterior a menos que se especifique explícitamente. También puede definir que el tipo subyacente de un enum sea cualquier otro tipo integral.
enum Season : byte { Spring = 1, Summer, Autumn = 4, Winter }
enum Season : byte { Spring = 1, Summer, Autumn = 4, Winter }
Friend Enum Season As Byte
Spring = 1
Summer
Autumn = 4
Winter
End Enum
En este ejemplo, Season es un enum, denominado aquí nombre del enum, con un byte como tipo subyacente. A la primavera se le asigna explícitamente el valor 1, por lo que es el valor por defecto, mientras que al verano, otoño e invierno se les asignan los valores correspondientes en función de su orden.
Para utilizar un enum, basta con declarar una variable del tipo enum especificado y asignarle un valor de un enum, como uno de los distintos valores definidos dentro de la declaración del enum, utilizando la sintaxis de puntos.
Season currentSeason = Season.Autumn;
Season currentSeason = Season.Autumn;
Dim currentSeason As Season = Season.Autumn
Esta línea crea una variable temporadaactual de tipo temporada y le asigna el valor otoño. Esto deja claro que temporadaActual sólo puede contener un valor que sea una Temporada válida.
Puede convertir un valor enum a su correspondiente valor entero utilizando un valor integral dado, y viceversa. Esto es útil cuando se necesita almacenar o transmitir datos en su forma numérica.
int autumnInt = (int)Season.Autumn;
Season season = (Season)4;
int autumnInt = (int)Season.Autumn;
Season season = (Season)4;
Imports System
Dim autumnInt As Integer = CInt(Math.Truncate(Season.Autumn))
Dim season As Season = CType(4, Season)
Aquí, autumnInt tendrá el valor 4, que corresponde a Autumn en el enum Season. A la inversa, temporada se establecerá en otoño al devolver el entero 4 a temporada.
C# proporciona varios métodos para trabajar con enums, como Enum.GetName(), Enum.GetNames(), Enum.GetValue(), y Enum.GetValues(), que son útiles para acceder a las constantes int asociadas a cada miembro del enum.
string[] names = Enum.GetNames(typeof(Season));
foreach (string name in names)
{
Console.WriteLine(name);
}
string[] names = Enum.GetNames(typeof(Season));
foreach (string name in names)
{
Console.WriteLine(name);
}
Dim names() As String = System.Enum.GetNames(GetType(Season))
For Each name As String In names
Console.WriteLine(name)
Next name
Este fragmento de código imprime los nombres de todos los miembros del enum Season. Estos métodos son increíblemente útiles para iterar sobre todos los valores posibles de un enum o convertir entre la representación de cadena y el valor del enum.
Puede asignar valores enteros específicos a los miembros del enum para controlar su valor numérico explícitamente.
enum ErrorCode : int { None = 0, NotFound = 404, Unauthorized = 401 }
enum ErrorCode : int { None = 0, NotFound = 404, Unauthorized = 401 }
Friend Enum ErrorCode As Integer
None = 0
NotFound = 404
Unauthorized = 401
End Enum
En este ejemplo, ErrorCode es un enum con valores enteros personalizados asignados a cada miembro. Esto es útil para códigos numéricos predefinidos, como los códigos de estado HTTP.
Utilizando el [Banderas], puede definir un enum como un conjunto de banderas de bits. Esto le permite almacenar una combinación de valores en una única variable enum.
[Flags]
enum Permissions { None = 0, Read = 1, Write = 2, Execute = 4 }
[Flags]
enum Permissions { None = 0, Read = 1, Write = 2, Execute = 4 }
<Flags>
Friend Enum Permissions
None = 0
Read = 1
Write = 2
Execute = 4
End Enum
Con el enum Permisos definido anteriormente, puede combinar diferentes permisos utilizando el operador OR a nivel de bits.
Permissions myPermissions = Permissions.Read
Permissions.Write;
Permissions myPermissions = Permissions.Read
Permissions.Write;
Dim myPermissions As Permissions = Permissions.Read Permissions.Write
Esto establece myPermissions a una combinación de Read y Write permisos.
Los enums funcionan excepcionalmente bien con las sentencias switch, permitiéndole ejecutar diferentes bloques de código basados en el valor del enum.
Season season = Season.Summer;
switch (season)
{
case Season.Spring:
Console.WriteLine("It's spring.");
break;
case Season.Summer:
Console.WriteLine("It's summer.");
break;
case Season.Autumn:
Console.WriteLine("It's autumn.");
break;
case Season.Winter:
Console.WriteLine("It's winter.");
break;
}
Season season = Season.Summer;
switch (season)
{
case Season.Spring:
Console.WriteLine("It's spring.");
break;
case Season.Summer:
Console.WriteLine("It's summer.");
break;
case Season.Autumn:
Console.WriteLine("It's autumn.");
break;
case Season.Winter:
Console.WriteLine("It's winter.");
break;
}
Dim season As Season = Season.Summer
Select Case season
Case Season.Spring
Console.WriteLine("It's spring.")
Case Season.Summer
Console.WriteLine("It's summer.")
Case Season.Autumn
Console.WriteLine("It's autumn.")
Case Season.Winter
Console.WriteLine("It's winter.")
End Select
Este código imprimirá "Es verano" porque la variable temporada está establecida en Temporada.Verano.
C# le permite analizar una cadena para obtener el valor de enum correspondiente utilizando la función Enum.Parse() método.
string input = "Winter";
Season season = (Season)Enum.Parse(typeof(Season), input);
string input = "Winter";
Season season = (Season)Enum.Parse(typeof(Season), input);
Dim input As String = "Winter"
Dim season As Season = DirectCast(System.Enum.Parse(GetType(Season), input), Season)
Este código convierte la cadena "Invierno " a su correspondiente valor enum Estación.Invierno.
Biblioteca PDF IronPDF para la generación dinámica de documentos es una biblioteca PDF para aplicaciones .NET que ayuda a los desarrolladores a crear, editar y manipular documentos PDF con facilidad. Esta potente biblioteca puede resultar especialmente útil en situaciones en las que se requiere la generación dinámica de PDF, como la generación de informes o facturas. En esta sección, exploraremos cómo integrar IronPDF con los enums de C# paracreación de informes PDF a partir de HTML en .NETy también cubriremos el proceso de instalación de IronPDF en su proyecto.
La instalación de IronPDF es muy sencilla utilizando la consola del gestor de paquetes NuGet. Abra la consola del gestor de paquetes en Visual Studio y escriba el siguiente comando:
Install-Package IronPdf
Este comando instalará IronPDF en nuestro proyecto.
Una forma alternativa es instalar IronPDF en su proyecto utilizando Visual Studio. En Visual Studio, haga clic con el botón derecho del ratón en el explorador de soluciones y haga clic en NuGet Package Manager for Solutions. A continuación, haga clic en la pestaña de búsqueda de la izquierda. A continuación, busque IronPDF, haga clic en instalar y añádalo a su proyecto.
Consideremos un escenario en el que desea generar un documento PDF que incluya un informe sobre datos de ventas estacionales. Puede utilizar enums para representar diferentes estaciones y IronPDF para generar el informe PDF. En primer lugar, define un enum para las estaciones:
public enum Season
{
Spring,
Summer,
Autumn,
Winter
}
public enum Season
{
Spring,
Summer,
Autumn,
Winter
}
Public Enum Season
Spring
Summer
Autumn
Winter
End Enum
A continuación, escribiremos un método que genere un informe PDF basado en la estación seleccionada. Este método utilizará IronPDF para crear un sencillo documento PDF que resuma los datos de ventas de la temporada en cuestión.
using IronPdf;
public class SalesReportGenerator
{
public static void GenerateSeasonalSalesReport(Season season)
{
IronPdf.License.LicenseKey = "License-Key";
var Renderer = new IronPdf.ChromePdfRenderer();
var htmlTemplate = $"<h1>Sales Report for {season}</h1><p>This section contains sales data for the {season} season.</p>";
var pdf = Renderer.RenderHtmlAsPdf(htmlTemplate);
var outputPath = $@"{season}SalesReport.pdf";
pdf.SaveAs(outputPath);
Console.WriteLine($"PDF report generated: {outputPath}");
}
}
using IronPdf;
public class SalesReportGenerator
{
public static void GenerateSeasonalSalesReport(Season season)
{
IronPdf.License.LicenseKey = "License-Key";
var Renderer = new IronPdf.ChromePdfRenderer();
var htmlTemplate = $"<h1>Sales Report for {season}</h1><p>This section contains sales data for the {season} season.</p>";
var pdf = Renderer.RenderHtmlAsPdf(htmlTemplate);
var outputPath = $@"{season}SalesReport.pdf";
pdf.SaveAs(outputPath);
Console.WriteLine($"PDF report generated: {outputPath}");
}
}
Imports IronPdf
Public Class SalesReportGenerator
Public Shared Sub GenerateSeasonalSalesReport(ByVal season As Season)
IronPdf.License.LicenseKey = "License-Key"
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim htmlTemplate = $"<h1>Sales Report for {season}</h1><p>This section contains sales data for the {season} season.</p>"
Dim pdf = Renderer.RenderHtmlAsPdf(htmlTemplate)
Dim outputPath = $"{season}SalesReport.pdf"
pdf.SaveAs(outputPath)
Console.WriteLine($"PDF report generated: {outputPath}")
End Sub
End Class
En este ejemplo, definimos un método GenerateSeasonalSalesReport que toma un enum Season como parámetro. Utiliza la clase ChromePdfRenderer de IronPDF para generar un PDF a partir de una cadena HTML que incluye el nombre de la temporada y un texto de marcador de posición para los datos de venta. A continuación, el PDF se guarda con un nombre de archivo que incluye el nombre de la temporada.
Para generar un informe de ventas de temporada, llame al método GenerateSeasonalSalesReport con una temporada específica:
static void Main(string [] args)
{
SalesReportGenerator.GenerateSeasonalSalesReport(Season.Winter);
}
static void Main(string [] args)
{
SalesReportGenerator.GenerateSeasonalSalesReport(Season.Winter);
}
Shared Sub Main(ByVal args() As String)
SalesReportGenerator.GenerateSeasonalSalesReport(Season.Winter)
End Sub
Esta llamada genera un documento PDF llamado InformeVentasInvierno.pdf, que incluye el informe de ventas de la temporada de invierno.
Los Enums en C# ofrecen una forma segura de trabajar con conjuntos de constantes con nombre relacionadas. Mejoran la legibilidad del código, reducen los errores y facilitan una organización más limpia del código. Al agrupar valores constantes relacionados bajo un nombre significativo, los enums facilitan la comprensión y el mantenimiento del código.
La integración de IronPDF con enums en C# permite la generación dinámica de documentos PDF basados en tipos enumerados. IronPDF ofrece unprueba gratuita de sus completas herramientas PDFla traducción debe ser profesional, conservando la precisión técnica y explicando al mismo tiempo las características y ventajas de estas herramientas para desarrolladores.
9 productos API .NET para sus documentos de oficina