Enum.Format(Type, Object, String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
根据指定格式将指定枚举类型的指定值转换为其等效的字符串表示形式。
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
的字符串表示形式。
- 属性
例外
enumType
、value
或 format
参数为 null
。
format
参数包含无效值。
示例
以下示例演示 在 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 。 |