// ===++===
//
// OrtizOL
//
// ===--===
/*============================================================
//
// Clase: DemoIsDefined.cs
//
// Propósito: Demostrar el uso y utilidad del método
// IsDefined en C#.
//
============================================================*/
using System;
namespace Articulos.Cap03
{
internal enum EstadoLlegada
{
Desconocido = - 3 ,
Retardado = - 1 ,
ATiempo = 0 ,
Temprano = 1
} ;
internal class DemoIsDefined
{
public static void Main( )
{
// Creación de arreglo estándar con varios valores:
int [ ] valores = { - 3 , - 1 , 0 , 1 , 5 , Int32.MinValue , Int32.MaxValue } ;
// Recorremos el arreglo para hacer búsqueda de
// coincidencia los valores del arreglo con los
// valores de los miembros de la enumeración:
foreach( int valor in valores)
{
// Variable auxiliar:
EstadoLlegada tempEstadoLlegada;
// Validmos que el valor de `valor` coincida con
// uno de los miembros de la enumeración `EstadoLlegada`:
if ( Enum.IsDefined ( typeof( EstadoLlegada) , valor) )
{
tempEstadoLlegada = ( EstadoLlegada) valor;
}
else
{
tempEstadoLlegada = EstadoLlegada.Desconocido ;
}
Console.WriteLine ( "Equivalencia de {0:N0} en `EstadoLlegada` es {1}" ,
valor, tempEstadoLlegada) ;
}
}
}
}
Ly8gPT09Kys9PT0KLy8KLy8gICAgT3J0aXpPTAovLwovLyA9PT0tLT09PQovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQovLwovLyBDbGFzZTogRGVtb0lzRGVmaW5lZC5jcwovLwovLyBQcm9ww7NzaXRvOiBEZW1vc3RyYXIgZWwgdXNvIHkgdXRpbGlkYWQgZGVsIG3DqXRvZG8gCi8vIElzRGVmaW5lZCBlbiBDIy4KLy8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCnVzaW5nIFN5c3RlbTsKCm5hbWVzcGFjZSBBcnRpY3Vsb3MuQ2FwMDMKewogICAgaW50ZXJuYWwgZW51bSBFc3RhZG9MbGVnYWRhCiAgICB7CiAgICAgICAgRGVzY29ub2NpZG8gPSAtMywKICAgICAgICBSZXRhcmRhZG8gPSAtMSwKICAgICAgICBBVGllbXBvID0gMCwKICAgICAgICBUZW1wcmFubyA9IDEKICAgIH07CiAgICAKICAgIGludGVybmFsIGNsYXNzIERlbW9Jc0RlZmluZWQKICAgIHsKICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCiAgICAgICAgewogICAgICAgICAgICAvLyBDcmVhY2nDs24gZGUgYXJyZWdsbyBlc3TDoW5kYXIgY29uIHZhcmlvcyB2YWxvcmVzOgogICAgICAgICAgICBpbnRbXSB2YWxvcmVzID0gey0zLCAtMSwgMCwgMSwgNSwgSW50MzIuTWluVmFsdWUsIEludDMyLk1heFZhbHVlfTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIFJlY29ycmVtb3MgZWwgYXJyZWdsbyBwYXJhIGhhY2VyIGLDunNxdWVkYSBkZSAKICAgICAgICAgICAgLy8gY29pbmNpZGVuY2lhIGxvcyB2YWxvcmVzIGRlbCBhcnJlZ2xvIGNvbiBsb3MgCiAgICAgICAgICAgIC8vIHZhbG9yZXMgZGUgbG9zIG1pZW1icm9zIGRlIGxhIGVudW1lcmFjacOzbjoKICAgICAgICAgICAgZm9yZWFjaChpbnQgdmFsb3IgaW4gdmFsb3JlcykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLy8gVmFyaWFibGUgYXV4aWxpYXI6CiAgICAgICAgICAgICAgICBFc3RhZG9MbGVnYWRhIHRlbXBFc3RhZG9MbGVnYWRhOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAvLyBWYWxpZG1vcyBxdWUgZWwgdmFsb3IgZGUgYHZhbG9yYCBjb2luY2lkYSBjb24gCiAgICAgICAgICAgICAgICAvLyB1bm8gZGUgbG9zIG1pZW1icm9zIGRlIGxhIGVudW1lcmFjacOzbiBgRXN0YWRvTGxlZ2FkYWA6CiAgICAgICAgICAgICAgICBpZihFbnVtLklzRGVmaW5lZCh0eXBlb2YoRXN0YWRvTGxlZ2FkYSksIHZhbG9yKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB0ZW1wRXN0YWRvTGxlZ2FkYSA9IChFc3RhZG9MbGVnYWRhKSB2YWxvcjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB0ZW1wRXN0YWRvTGxlZ2FkYSA9IEVzdGFkb0xsZWdhZGEuRGVzY29ub2NpZG87CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJFcXVpdmFsZW5jaWEgZGUgezA6TjB9IGVuIGBFc3RhZG9MbGVnYWRhYCBlcyB7MX0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsb3IsIHRlbXBFc3RhZG9MbGVnYWRhKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQ==
stdout
Equivalencia de -3 en `EstadoLlegada` es Desconocido
Equivalencia de -1 en `EstadoLlegada` es Retardado
Equivalencia de 0 en `EstadoLlegada` es ATiempo
Equivalencia de 1 en `EstadoLlegada` es Temprano
Equivalencia de 5 en `EstadoLlegada` es Desconocido
Equivalencia de -2,147,483,648 en `EstadoLlegada` es Desconocido
Equivalencia de 2,147,483,647 en `EstadoLlegada` es Desconocido