Enum.GetNames(Type) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
检索指定枚举中常量名称的数组。
public:
static cli::array <System::String ^> ^ GetNames(Type ^ enumType);
public static string[] GetNames(Type enumType);
[System.Runtime.InteropServices.ComVisible(true)]
public static string[] GetNames(Type enumType);
static member GetNames : Type -> string[]
[<System.Runtime.InteropServices.ComVisible(true)>]
static member GetNames : Type -> string[]
Public Shared Function GetNames (enumType As Type) As String()
参数
- enumType
- Type
枚举类型。
返回
String[]
常量名称的 enumType字符串数组。
- 属性
例外
enumType 是 null。
enumType 参数不是 Enum.
.NET 8 及更高版本:enumType 是布尔支持的枚举类型。
示例
下面的示例演示了该方法的使用 GetNames 。
using System;
public class GetNamesTest {
enum Colors { Red, Green, Blue, Yellow };
enum Styles { Plaid, Striped, Tartan, Corduroy };
public static void Main() {
Console.WriteLine("The members of the Colors enum are:");
foreach(string s in Enum.GetNames(typeof(Colors)))
Console.WriteLine(s);
Console.WriteLine();
Console.WriteLine("The members of the Styles enum are:");
foreach(string s in Enum.GetNames(typeof(Styles)))
Console.WriteLine(s);
}
}
// The example displays the following output:
// The members of the Colors enum are:
// Red
// Green
// Blue
// Yellow
//
// The members of the Styles enum are:
// Plaid
// Striped
// Tartan
// Corduroy
open System
type Colors =
| Red = 0
| Green = 1
| Blue = 2
| Yellow = 3
type Styles =
| Plaid = 0
| Striped = 1
| Tartan = 2
| Corduroy = 3
printfn "The members of the Colors enum are:"
for s in Enum.GetNames typeof<Colors> do
printfn $"{s}"
printfn "\nThe members of the Styles enum are:"
for s in Enum.GetNames typeof<Styles> do
printfn $"{s}"
// The example displays the following output:
// The members of the Colors enum are:
// Red
// Green
// Blue
// Yellow
//
// The members of the Styles enum are:
// Plaid
// Striped
// Tartan
// Corduroy
Public Class GetNamesTest
Enum Colors
Red
Green
Blue
Yellow
End Enum
Enum Styles
Plaid
Striped
Tartan
Corduroy
End Enum
Public Shared Sub Main()
Console.WriteLine("The members of the Colors enum are:")
For Each s In [Enum].GetNames(GetType(Colors))
Console.WriteLine(s)
Next
Console.WriteLine()
Console.WriteLine("The members of the Styles enum are:")
For Each s In [Enum].GetNames(GetType(Styles))
Console.WriteLine(s)
Next
End Sub
End Class
' The example displays the following output:
' The members of the Colors enum are:
' Red
' Green
' Blue
' Yellow
'
' The members of the Styles enum are:
' Plaid
' Striped
' Tartan
' Corduroy
注解
返回值数组的元素按枚举常量(即其无符号数量级)的二进制值进行排序。 以下示例显示一个枚举方法返回 GetNames 的数组的相关信息,该枚举包括负值、零值和正值。
using System;
enum SignMagnitude { Negative = -1, Zero = 0, Positive = 1 };
public class Example
{
public static void Main()
{
foreach (var name in Enum.GetNames(typeof(SignMagnitude))) {
Console.WriteLine("{0,3:D} 0x{0:X} {1}",
Enum.Parse(typeof(SignMagnitude), name),
name);
} }
}
// The example displays the following output:
// 0 0x00000000 Zero
// 1 0x00000001 Positive
// -1 0xFFFFFFFF Negative
open System
type SignMagnitude =
| Negative = -1
| Zero = 0
| Positive = 1
for name in Enum.GetNames typeof<SignMagnitude> do
let p = Enum.Parse(typeof<SignMagnitude>, name)
printfn $"{p,3:D} 0x{p:X} {name}"
// The example displays the following output:
// 0 0x00000000 Zero
// 1 0x00000001 Positive
// -1 0xFFFFFFFF Negative
Public Enum SignMagnitude As Integer
Negative = -1
Zero = 0
Positive = 1
End Enum
Module Example
Public Sub Main()
Dim names() As String = [Enum].GetNames(GetType(SignMagnitude))
For Each name In names
Console.WriteLine("{0,3:D} 0x{0:X} {1}",
[Enum].Parse(GetType(SignMagnitude), name),
name)
Next
End Sub
End Module
' The example displays the following output:
' 0 0x00000000 Zero
' 1 0x00000001 Positive
' -1 0xFFFFFFFF Negative
如果有具有相同值的枚举常量,则不指定其相应名称的顺序。