Enum.Format メソッド
指定した形式に従って、指定した列挙型の指定した値をそれと等価の文字列形式に変換します。
Public Shared Function Format( _
ByVal enumType As Type, _ ByVal value As Object, _ ByVal format As String _) As String
[C#]
public static string Format(TypeenumType,objectvalue,stringformat);
[C++]
public: static String* Format(Type* enumType,Object* value,String* format);
[JScript]
public static function Format(
enumType : Type,value : Object,format : String) : String;
パラメータ
- enumType
変換する値の列挙型。 - value
変換する値。 - format
使用する出力書式。
戻り値
value の文字列形式。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | enumType 、value、または format の各パラメータが null 参照 (Visual Basic では Nothing) です。 |
ArgumentException | enumType パラメータが Enum 型ではありません。
または value は、 enumType とは型の異なる列挙体からの値です。 または value の型が、 enumType の基になる型ではありません。 |
FormatException | format パラメータには無効な値が含まれています。 |
解説
有効な形式の値は、次のとおりです。
形式 | 説明 |
---|---|
"G" または "g" | value が名前付き列挙型定数と等しい場合は、その定数の名前が返されます。それ以外の場合は、value の 10 進等価値が返されます。
たとえば、唯一の列挙型定数が Red という名前で、その値が 1 であるとします。value を 1 と指定した場合、この形式は "Red" を返します。ただし、value を 2 と指定した場合、この形式は "2" を返します。 または FlagsAttribute カスタム属性をこの列挙体に適用した場合、value は、1 つ以上のビットから成るフラグが 1 つ以上含まれたビット フィールドとして扱われます。 value が名前付き列挙型定数の組み合わせに等しい場合は、それらの定数の名前が、区切り記号で区切られたリストとして返されます。value でフラグが検索されます。この検索は、値が最大のフラグから最小のフラグへの順に行われます。value でビット フィールドに対応するフラグが見つかるごとに、区切り記号で区切られたリストにその定数の名前が連結されます。以後、そのフラグの値は検索対象から除外され、その次のフラグから検索が続行されます。 value が名前付き列挙型定数と等しくない場合は、value の 10 進等価値が返されます。 |
"X" または "x" | 先頭に "0x" を付けない 16 進形式で value を表します。 |
"D" または "d" | value を 10 進形式で表します。 |
"F" または "f" | 宣言 Enum に FlagsAttribute が存在する必要がない点を除いて、"G" または "g" と同じように動作します。 |
使用例
Enum のコンテキストでの Format の使用方法については、次のコード例を参照してください。
Imports System
Public Class FormatTest
Enum Colors
Red
Green
Blue
Yellow
End Enum 'Colors
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 'Main
End Class 'FormatTest
[C#]
using System;
public class FormatTest {
enum Colors { Red, Green, Blue, Yellow };
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"));
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
__value enum Colors { Red, Green, Blue, Yellow };
int main() {
Colors myColor = Colors::Blue;
Console::WriteLine("My favorite color is {0}", __box(myColor));
Console::WriteLine("The value of my favorite color is {0}", Enum::Format(__typeof(Colors), __box(myColor), "d"));
Console::WriteLine("The hex value of my favorite color is {0}", Enum::Format(__typeof(Colors), __box(myColor), "x"));
}
[JScript]
import System;
public class FormatTest {
enum Colors { Red, Green, Blue, Yellow };
public static function Main() {
var myColor : Colors = Colors.Blue;
Console.WriteLine("My favorite color is {0}", myColor);
Console.WriteLine("The value of my favorite color is {0}", Enum.Format(Colors, myColor, "d"));
Console.WriteLine("The hex value of my favorite color is {0}", Enum.Format(Colors, myColor, "x"));
}
}
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard
参照
Enum クラス | Enum メンバ | System 名前空間 | 書式設定の概要 | 列挙型書式指定文字列 | ToString