C# | Type.GetEnumUnderlyingType() Method Last Updated : 11 Jul, 2025 Comments Improve Suggest changes Like Article Like Report Type.GetEnumUnderlyingType() Method is used to return the underlying type of the current enumeration type. Syntax: public virtual Type GetEnumUnderlyingType (); Return Value: This method returns the underlying type of the current enumeration. Exception: This method will return the ArgumentException if the current type is not an enumeration or the enumeration type is not valid(due to containing more than one instance field). Below programs illustrate the use of the above-discussed method: Example 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); } } } Output: Underlying type is : System.Int32 Example 2: For 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); } } } Output: The current type is not an enumeration. Exception Thrown: System.ArgumentException Reference: https://learn.microsoft.com/en-us/dotnet/api/system.type.getenumunderlyingtype?view=netframework-4.8 Create Quiz Comment R rohitprasad3 Follow 0 Improve R rohitprasad3 Follow 0 Improve Article Tags : C# CSharp-method CSharp-Type-Class Explore IntroductionC# Tutorial 2 min read Introduction to .NET Framework 6 min read C# .NET Framework (Basic Architecture and Component Stack) 6 min read C# Hello World 2 min read Common Language Runtime (CLR) in C# 4 min read FundamentalsC# Identifiers 2 min read Data Types in C# 6 min read C# Variables 4 min read C# Literals 5 min read Operators in C# 7 min read C# Keywords 5 min read Control StatementsC# Decision Making (if, if-else, if-else-if ladder, nested if, switch, nested switch) 5 min read C# Switch Statement 4 min read Loops in C# 4 min read C# Jump Statements (Break, Continue, Goto, Return and Throw) 4 min read OOP ConceptsClass and Objects in C# 4 min read Constructors in C# 5 min read C# Inheritance 3 min read Encapsulation in C# 2 min read C# Abstraction 4 min read MethodsMethods in C# 4 min read Method Overloading in C# 4 min read Method Parameters in C# 4 min read Method Overriding in C# 7 min read Anonymous Method in C# 2 min read ArraysArrays in C# 6 min read Jagged Arrays in C# 4 min read Array Class in C# 5 min read How to Sort an Array in C# | Array.Sort() Method Set - 1 8 min read How to find the rank of an array in C# 2 min read ArrayListArrayList in C# 6 min read ArrayList Class in C# 4 min read C# | Array vs ArrayList 2 min read StringStrings in C# 6 min read C# Verbatim String Literal - @ 5 min read C# String Class 9 min read C# StringBuilder 2 min read C# String vs StringBuilder 3 min read TupleC# Tuple 7 min read C# Tuple Class 3 min read C# ValueTuple 7 min read C# ValueTuple Struct 4 min read IndexersC# Indexers 5 min read C# Multidimensional Indexers 5 min read C# - Overloading of Indexers 3 min read Like