Enum.GetUnderlyingType(Type) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí základní typ zadaného výčtu.
public:
static Type ^ GetUnderlyingType(Type ^ enumType);
public static Type GetUnderlyingType (Type enumType);
[System.Runtime.InteropServices.ComVisible(true)]
public static Type GetUnderlyingType (Type enumType);
static member GetUnderlyingType : Type -> Type
[<System.Runtime.InteropServices.ComVisible(true)>]
static member GetUnderlyingType : Type -> Type
Public Shared Function GetUnderlyingType (enumType As Type) As Type
Parametry
- enumType
- Type
Výčet, jehož základní typ bude načten.
Návraty
Základní typ enumType
.
- Atributy
Výjimky
enumType
je null
.
enumType
není Enum .
Příklady
Následující příklad volá GetUnderlyingType metodu k zobrazení základního typu některých členů výčtu.
using System;
public class Example
{
public static void Main()
{
Enum[] enumValues = { ConsoleColor.Red, DayOfWeek.Monday,
MidpointRounding.ToEven, PlatformID.Win32NT,
DateTimeKind.Utc, StringComparison.Ordinal };
Console.WriteLine("{0,-10} {1, 18} {2,15}\n",
"Member", "Enumeration", "Underlying Type");
foreach (var enumValue in enumValues)
DisplayEnumInfo(enumValue);
}
static void DisplayEnumInfo(Enum enumValue)
{
Type enumType = enumValue.GetType();
Type underlyingType = Enum.GetUnderlyingType(enumType);
Console.WriteLine("{0,-10} {1, 18} {2,15}",
enumValue, enumType.Name, underlyingType.Name);
}
}
// The example displays the following output:
// Member Enumeration Underlying Type
//
// Red ConsoleColor Int32
// Monday DayOfWeek Int32
// ToEven MidpointRounding Int32
// Win32NT PlatformID Int32
// Utc DateTimeKind Int32
// Ordinal StringComparison Int32
Module Example
Public Sub Main()
Dim enumValues() As [Enum] = { ConsoleColor.Red, DayOfWeek.Monday,
MidpointRounding.ToEven, PlatformID.Win32NT,
DateTimeKind.Utc, StringComparison.Ordinal }
Console.WriteLine("{0,-10} {1, 18} {2,15}",
"Member", "Enumeration", "Underlying Type")
Console.WriteLine()
For Each enumValue In enumValues
DisplayEnumInfo(enumValue)
Next
End Sub
Sub DisplayEnumInfo(enumValue As [Enum])
Dim enumType As Type = enumValue.GetType()
Dim underlyingType As Type = [Enum].GetUnderlyingType(enumType)
Console.WriteLine("{0,-10} {1, 18} {2,15}",
enumValue, enumType.Name, underlyingType.Name)
End Sub
End Module
' The example displays the following output:
' Member Enumeration Underlying Type
'
' Red ConsoleColor Int32
' Monday DayOfWeek Int32
' ToEven MidpointRounding Int32
' Win32NT PlatformID Int32
' Utc DateTimeKind Int32
' Ordinal StringComparison Int32
Poznámky
Struktura Enum umožňuje reprezentovat hodnoty jako pojmenované konstanty. Datový typ hodnot výčtu se označuje jako jeho základní typ. Například základní typ výčtu, který se skládá z konstant, které představují každý den v týdnu DayOfWeek ( DayOfWeek.Monday , DayOfWeek.Tuesday atd.), je Int32 .