Enum.GetUnderlyingType(Type) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar den underliggande typen av angiven uppräkning.
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
Parametrar
- enumType
- Type
Uppräkningen vars underliggande typ kommer att hämtas.
Returer
Den underliggande typen av enumType.
- Attribut
Undantag
enumType är null.
enumType är inte en Enum.
Exempel
I följande exempel anropas GetUnderlyingType metoden för att visa den underliggande typen av vissa uppräkningsmedlemmar.
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
open System
let displayEnumInfo (enumValue: Enum) =
let enumType = enumValue.GetType()
let underlyingType = Enum.GetUnderlyingType enumType
printfn $"{enumValue,-10} {enumType.Name, 18} {underlyingType.Name,15}"
let enumValues: Enum list =
[ ConsoleColor.Red; DayOfWeek.Monday
MidpointRounding.ToEven; PlatformID.Win32NT
DateTimeKind.Utc; StringComparison.Ordinal ]
printfn "%-10s %18s %15s\n" "Member" "Enumeration" "Underlying Type"
for enumValue in enumValues do
displayEnumInfo enumValue
// 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
Kommentarer
Strukturen Enum gör att värden kan representeras som namngivna konstanter. Datatypen för uppräkningsvärdena kallas för dess underliggande typ. Till exempel är DayOfWeekden underliggande typen av DayOfWeek.Monday uppräkning, som består av konstanter som representerar varje dag i veckan (DayOfWeek.Tuesday, Int32, och så vidare), .