C# ¿Qué es un tipo de enumeración?

Una breve descripción de las enumeraciones en C#

El tipo de enumeración es un tipo de valor que se utiliza para declarar un conjunto de constantes con nombre.

(1) Declaración de enumeración: la declaración de enumeración se utiliza para declarar un nuevo tipo de enumeración.

Acceda al nombre de enumeración de enumeración retórica: tipo básico

{

Miembros de la enumeración

}

El tipo subyacente debe poder representar todos los valores de enumeración definidos en la enumeración. Una declaración de enumeración puede declarar explícitamente un tipo byte, sbyte, short, ushort, int, uint, long o ulong como el tipo base correspondiente. Una declaración de enumeración que no declara explícitamente un tipo base significa que el tipo base correspondiente es int.

(2) Miembros de la enumeración

Los miembros de la enumeración se denominan constantes del tipo de enumeración. No pueden haber dos miembros de la enumeración con el mismo nombre. Cada miembro de la enumeración tiene un valor constante asociado. El tipo de este valor es el tipo base de la enumeración. El valor constante de cada miembro de la enumeración debe estar dentro del rango del tipo subyacente de la enumeración.

Ejemplo:

enumeración pública Hora del día: uint

{

Mañana=-3,

Tarde= -2,

Evening=-1

}

Genera un error en tiempo de compilación porque los valores constantes -1, -2 y –3 no están en los tipos enteros subyacentes Dentro del rango de uint.

(3) Valor predeterminado de los miembros de la enumeración

El valor predeterminado del primer miembro de la enumeración declarado en el tipo de enumeración es cero.

Los valores de los miembros de enumeración posteriores se obtienen sumando 1 al valor del miembro de enumeración anterior (en orden de texto). El valor así agregado debe estar dentro del rango de valores representables por el tipo subyacente; de ​​lo contrario, se producirá un error en tiempo de compilación.

Ejemplo:

public enum TimeofDay: uint

{

Mañana,

Tarde,

Tarde

}

El valor de Mañana es 0, el valor de Tarde es 1 y el valor de Tarde es 2.

(4) Mostrar asignación de miembros de enumeración

Permitir que varios miembros de enumeración tengan el mismo valor.

El valor del miembro de enumeración sin mostrar asignación, siempre el valor 1 del miembro de enumeración anterior.

Ejemplo

Número de enumeración pública

{

a=1,

b,

c=1,

d

}

El valor de b es 2 y el valor de d es El valor es 2.

Nota: Ninguno de los valores de enumeración anteriores puede exceder el rango de su tipo subyacente.

De lo contrario, se informará un error.

(5) Conversión entre tipo de enumeración y tipo básico

El tipo básico no se puede convertir implícitamente en tipo de enumeración

Tipo de enumeración tampoco es convertible implícitamente a un tipo base

Ejemplo:

número de enumeración pública

{

a,

b,

c,

d

}

prueba de clase

{

public static void Main()

{

int i=Number.a; //Error, se requiere conversión de tipo (int)Number.a

Número n;

n=2 //Error, conversión de tipo forzada (Número)2

}

}

(6 )Tipo System.Enum

El tipo System.Enum es la clase base abstracta para todos los tipos de enumeración, y los miembros heredados de System.Enum están disponibles en cualquier tipo de enumeración.

System.Enum en sí no es un tipo de enumeración. Más bien, es un tipo de clase del que se derivan todos los tipos enumerados.

System.Enum se deriva del tipo System.ValueType

(7) Usando el tipo de enumeración

usando System

public enum TimeofDay;

{

Mañana,

Tarde,

Noche

}

clase Prueba

{

static void WriteGreeting(TimeofDay timeofDay)

{

switch(timeofDay)

{

caso Hora del día.Mañana:

Console.WriteLine("buenos días");

descanso

caso Hora del día.Tarde:

Console.WriteLine("buenas tardes");

descanso

case TimeofDay.Evening:

Console.WriteLine(" buenas noches");

descanso;

}

}

static void Main()

{

WriteGreeting(Hora del día.Mañana);

WriteGreeting(Hora del día.Tarde

WriteGreeting(Hora del día.Tarde

}

}