C# | Método Type.GetEnumUnderlyingType()

El método Type.GetEnumUnderlyingType() se usa para devolver el tipo subyacente del tipo de enumeración actual.

Sintaxis: 

public virtual Type GetEnumUnderlyingType ();

Valor devuelto: este método devuelve el tipo subyacente de la enumeración actual.

Excepción: este método devolverá ArgumentException si el tipo actual no es una enumeración o el tipo de enumeración no es válido (debido a que contiene más de un campo de instancia).

Los siguientes programas ilustran el uso del método mencionado anteriormente:

Ejemplo 1: 

C#

// C# program to demonstrate the
// Type.GetEnumUnderlyingType() Method
using System;
using System.Globalization;
using System.Reflection;
 
class GFG {
 
    // Defining enum ABC
    enum ABC { A,
               B,
               C,
               D,
               E,
               F }
 
    // Main Method
    public static void Main()
    {
 
        // try-catch block to
        // handle exceptions
        try {
 
            // Creating and initializing object
            // of ABC with instance of enum ABC
            ABC a = ABC.A;
 
            // Declaring and initializing
            // object of Type
            Type type = a.GetType();
 
            // Getting underlying type of current enumeration
            // By using GetEnumUnderlyingType() method
            Type obj = type.GetEnumUnderlyingType();
 
            // Display underlying type
            Console.Write("Underlying type is : {0} ", obj);
        }
 
        // ArgumentException here
        catch (ArgumentException e)
        {
            Console.Write("The current type is not an enumeration.");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
Producción: 

Underlying type is : System.Int32

 

Ejemplo 2: para ArgumentException

C#

// C# program to demonstrate the
// Type.GetEnumUnderlyingType() Method
using System;
using System.Globalization;
using System.Reflection;
 
class GFG {
 
    // Defining enum ABC
    enum ABC { A,
               B,
               C,
               D,
               E,
               F }
 
    // Main Method
    public static void Main()
    {
 
        // try-catch block to
        // handle exceptions
        try {
 
            // Declaring and initializing
            // object of Type
            Type type = typeof(int);
 
            // Getting underlying type of current enumeration
            // By using GetEnumUnderlyingType() method
            Type obj = type.GetEnumUnderlyingType();
 
            // Display underlying type
            Console.Write("underlying type is : {0} ", obj);
        }
 
        // catch ArgumentException here
        catch (ArgumentException e)
        {
            Console.WriteLine("The current type is not an enumeration.");
            Console.Write("Exception Thrown: ");
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}
Producción: 

The current type is not an enumeration.
Exception Thrown: System.ArgumentException

 

Referencia:

Publicación traducida automáticamente

Artículo escrito por RohitPrasad3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *