7

私は次の列挙型を持っています:

public enum EReferenceKey {
        Accounts             = 1,
        Emails                = 3,
        Phones               = 4
}

列挙型変数 pk が Accounts で、これを "01" に変換しようとすると、

var a = pk.ToString("00");

それは私に次の例外を与えます:

書式文字列は、"G"、"g"、"X"、"x"、"F"、"f"、"D"、または "d" のみにすることができます

誰かが私が間違っていることを説明できますか?

4

3 に答える 3

8

そのフォーマット文字列を試す前に、intにキャストする必要があります。列挙型には独自のToString実装があるため、int形式の文字列は正しくありません。

var a = ((int)pk).ToString("00");
于 2012-09-16T05:32:16.517 に答える
2

int列挙値をフォーマットする前に、にキャストしてみてください。

var a = ((int)EReferenceKey.Accounts).ToString("00");

それは私のために働いた。

于 2012-09-16T05:32:47.047 に答える
2

String.Formatのフォーマット文字を使用しようとしています。列挙型は異なります。http://msdn.microsoft.com/en-us/library/system.enum.format.aspxをご覧ください。

値を取得してからフォーマットする必要があります。キャストはそれを行う最も簡単な方法です。

于 2012-09-16T05:35:28.320 に答える