📜  根据C#中的指定格式将枚举类型转换为字符串

📅  最后修改于: 2021-05-29 18:23:18             🧑  作者: Mango

Enum.Format(Type,Object,String)方法用于根据指定的格式将指定的枚举类型的指定值转换为其等效的字符串表示形式。

句法:

public static string Format (Type enumType, object value, string format);

参数:

  • enumType:是要转换的值的枚举类型。
  • 值:它是要转换的值。
  • 格式:这是要使用的输出格式。

返回值:此方法返回值的字符串表示形式。

例外情况:

  • ArgumentNullException:如果enumTypevalueformat参数为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));
    }
}

运行时错误:

注意:以下是format参数的一些有效值。

  • “ D”或“ d”:以十进制形式表示值参数。
  • “ X”或“ x”:以十六进制格式表示值参数。它不以“ 0x”开头。

参考:

  • https://docs.microsoft.com/zh-cn/dotnet/api/system.enum.format?view=netframework-4.8