Enum.GetNames 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
GetNames(Type) |
在指定的列舉中擷取常數名稱的陣列。 |
GetNames<TEnum>() |
在指定的列舉類型中擷取常數名稱的陣列。 |
GetNames(Type)
- 來源:
- Enum.cs
- 來源:
- Enum.cs
- 來源:
- Enum.cs
在指定的列舉中擷取常數名稱的陣列。
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 namespace System;
enum class Colors
{
Red, Green, Blue, Yellow
};
enum class Styles
{
Plaid, Striped, Tartan, Corduroy
};
int main()
{
Console::WriteLine( "The members of the Colors enum are:" );
Array^ a = Enum::GetNames( Colors::typeid );
Int32 i = 0;
do
{
Object^ o = a->GetValue( i );
Console::WriteLine( o->ToString() );
}
while ( ++i < a->Length );
Console::WriteLine();
Console::WriteLine( "The members of the Styles enum are:" );
Array^ b = Enum::GetNames( Styles::typeid );
i = 0;
do
{
Object^ o = b->GetValue( i );
Console::WriteLine( o->ToString() );
}
while ( ++i < b->Length );
}
// 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
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
如果有具有相同值的列舉常數,則未指定其對應名稱的順序。
適用於
GetNames<TEnum>()
- 來源:
- Enum.cs
- 來源:
- Enum.cs
- 來源:
- Enum.cs
在指定的列舉類型中擷取常數名稱的陣列。
public:
generic <typename TEnum>
where TEnum : value class static cli::array <System::String ^> ^ GetNames();
public static string[] GetNames<TEnum> () where TEnum : struct;
static member GetNames : unit -> string[] (requires 'Enum : struct)
Public Shared Function GetNames(Of TEnum As Structure) () As String()
類型參數
- TEnum
列舉的型別。
傳回
String[]
在 TEnum
中的常數名稱字串陣列。
例外狀況
.NET 8 和更新版本: TEnum
是布林值支援的列舉類型。