Enum.Format(Type,Object,String)方法用于根据指定的格式将指定的枚举类型的指定值转换为其等效的字符串表示形式。
句法:
public static string Format (Type enumType, object value, string format);
参数:
- enumType:是要转换的值的枚举类型。
- 值:它是要转换的值。
- 格式:这是要使用的输出格式。
返回值:此方法返回值的字符串表示形式。
例外情况:
- ArgumentNullException:如果enumType , value或format参数为null。
- ArgumentException:如果enumType参数不是Enum类型,或者值来自与enumType类型不同的枚举,或者值的类型不是enumType的基础类型。
- FormatException:如果format参数包含无效值。
- InvalidOperationException:如果格式等于“ X”,但枚举类型未知。
下面的程序说明了上述方法的用法。
范例1:
// C# program to illustrate the
// Enum.Format(Type, Object,
// String) Method
using System;
enum Animals { Dog,
Cat,
Cow };
class GFG {
// Main Method
public static void Main(String[] args)
{
Animals fav = Animals.Cat;
Console.WriteLine("My favorite Animal is {0}.", fav);
// using the Method and here
// "d" specify the value in
// decimal form.
Console.WriteLine("The value of my favorite Animal is {0}.",
Enum.Format(typeof(Animals), fav, "d"));
// using the Method and here
// "x" specify the value in
// hexadecimal form.
Console.WriteLine("The hex value of my Animal is {0}.",
Enum.Format(typeof(Animals), fav, "x"));
}
}
输出:
My favorite Animal is Cat.
The value of my favorite Animal is 1.
The hex value of my Animal is 00000001.
范例2:
// C# program to illustrate the
// Enum.Format(Type, Object,
// String) Method
using System;
enum Animals { Dog,
Cat,
Cow };
class GFG {
// Main Method
public static void Main()
{
Animals fav = Animals.Cat;
Console.WriteLine("My favorite Animal is {0}.", fav);
// using the Method and format is null
// thats why it give exception
Console.WriteLine("The value of my favorite Animal is {0}.",
Enum.Format(typeof(Animals), fav, null));
}
}
运行时错误:
Unhandled Exception:
System.ArgumentNullException: Value cannot be null.
Parameter name: format
注意:以下是format参数的一些有效值。
- “ D”或“ d”:以十进制形式表示值参数。
- “ X”或“ x”:以十六进制格式表示值参数。它不以“ 0x”开头。
参考:
- https://docs.microsoft.com/zh-cn/dotnet/api/system.enum.format?view=netframework-4.8