Enum.Format(Type, Object, String) 方法

定义

根据指定格式将指定枚举类型的指定值转换为其等效的字符串表示形式。

public:
 static System::String ^ Format(Type ^ enumType, System::Object ^ value, System::String ^ format);
public static string Format (Type enumType, object value, string format);
[System.Runtime.InteropServices.ComVisible(true)]
public static string Format (Type enumType, object value, string format);
static member Format : Type * obj * string -> string
[<System.Runtime.InteropServices.ComVisible(true)>]
static member Format : Type * obj * string -> string
Public Shared Function Format (enumType As Type, value As Object, format As String) As String

参数

enumType
Type

要转换的值的枚举类型。

value
Object

要转换的值。

format
String

要使用的输出格式。

返回

value 的字符串表示形式。

属性

例外

enumTypevalueformat 参数为 null

enumType 参数不是 Enum 类型。

- 或 -

value 来自于类型与 enumType 不同的枚举。

- 或 -

value 的类型不是 enumType 的基础类型。

format 参数包含无效值。

format 等于“X”,但枚举类型未知。

-或-

.NET 8 及更高版本: enumType 是一种布尔支持的枚举类型。

示例

以下示例演示 在 Format 的上下文 Enum中使用 。

using namespace System;
public enum class Colors
{
   Red, Green, Blue, Yellow
};

int main()
{
   Colors myColor = Colors::Blue;
   Console::WriteLine(  "My favorite color is {0}.", myColor );
   Console::WriteLine(  "The value of my favorite color is {0}.", Enum::Format( Colors::typeid, myColor,  "d" ) );
   Console::WriteLine(  "The hex value of my favorite color is {0}.", Enum::Format( Colors::typeid, myColor,  "x" ) );
}
// The example displays the folowing output:
//    My favorite color is Blue.
//    The value of my favorite color is 2.
//    The hex value of my favorite color is 00000002.
using System;

enum Colors { Red, Green, Blue, Yellow };

public class FormatTest {
    public static void Main() {
        Colors myColor = Colors.Blue;

        Console.WriteLine("My favorite color is {0}.", myColor);
        Console.WriteLine("The value of my favorite color is {0}.", Enum.Format(typeof(Colors), myColor, "d"));
        Console.WriteLine("The hex value of my favorite color is {0}.", Enum.Format(typeof(Colors), myColor, "x"));
    }
}
// The example displays the following output:
//    My favorite color is Blue.
//    The value of my favorite color is 2.
//    The hex value of my favorite color is 00000002.
open System

type Colors =
    | Red = 0
    | Green = 1
    | Blue = 2
    | Yellow = 3

let myColor = Colors.Blue

printfn $"My favorite color is {myColor}."
printfn $"""The value of my favorite color is {Enum.Format(typeof<Colors>, myColor, "d")}."""
printfn $"""The hex value of my favorite color is {Enum.Format(typeof<Colors>, myColor, "x")}."""
// The example displays the following output:
//    My favorite color is Blue.
//    The value of my favorite color is 2.
//    The hex value of my favorite color is 00000002.
 Enum Colors
     Red
     Green
     Blue
     Yellow    
 End Enum
    
Public Class FormatTest
    Public Shared Sub Main()
        Dim myColor As Colors = Colors.Blue
        
        Console.WriteLine("My favorite color is {0}.", myColor)
        Console.WriteLine("The value of my favorite color is {0}.", [Enum].Format(GetType(Colors), myColor, "d"))
        Console.WriteLine("The hex value of my favorite color is {0}.", [Enum].Format(GetType(Colors), myColor, "x"))
    End Sub 
End Class 
' The example displays the following output:
'    My favorite color is Blue.
'    The value of my favorite color is 2.
'    The hex value of my favorite color is 00000002.

注解

下表显示了 参数的有效值 format

格式 说明
“G”或“g” 如果 value 等于命名枚举常量,则返回该常量的名称;否则,返回的 value 十进制等效项。

例如,假设唯一枚举的常量名为 Red,其值为 1。 如果 value 指定为 1,则此格式返回“Red”。 但是,如果 value 指定为 2,则此格式将返回“2”。

- 或 -

FlagsAttribute如果自定义属性应用于枚举,value则被视为包含一个或多个标志的位字段,这些标志由一个或多个位组成。

如果 value 等于命名枚举常量的组合,则返回这些常量名称的分隔符分隔列表。 value 搜索标志,从具有最大值的标志到最小值。 对于 对应于 中的 value位字段的每个标志,常量的名称将连接到分隔符分隔的列表。 然后,该标志的值将被排除在进一步考虑之外,并继续搜索下一个标志。

如果 value 不等于命名枚举常量的组合,则返回 的 value 十进制等效项。
“X”或“x” value 十六进制格式表示,不带前导“0x”。
“D”或“d” value 十进制形式表示。
“F”或“f” 行为与“G”或“g”相同,只不过 FlagsAttribute 声明中不需要存在 Enum

适用于

另请参阅