2

テスト プログラム (.NET 2.0):

[Flags]
enum MyEnum
{
    Member1 = 1,
    Member2 = 2,
}

class Program
{
    // Inspecting r shows "Member1 | Member2"
    MyEnum r = MyEnum.Member1 | MyEnum.Member2;

    // s = "Member1, Member2"
    string s = r.ToString();
}

.ToString()メンバーがパイプで区切られた文字列を返すことを期待していましたが、そうではありません。

おまけ情報:Enum.Parse()コンマ区切りの文字列の呼び出しは成功しますが、パイプ区切りの文字列を指定すると失敗します。

4

2 に答える 2

2

VSデバッガーは、ビジュアライザーを使用して値を表示します。特定のデータ型のビジュアライザーがない場合にのみ、.ToString()メソッドにフォールバックします。

ビジュアライザーの詳細:

http://msdn.microsoft.com/en-us/library/zayyhzts.aspx

于 2010-01-12T21:35:41.147 に答える
1

でマークされた列挙型のデフォルトのToString実装FlagsAttributeは、コンマ区切りのリストです。ただし、必ずしもデバッガーに表示される結果であるとは限りません。ビット単位の記号またはパイプToStringを使用して値をレンダリングする列挙型用に設定されたデバッガービジュアライザーが必要です。OR

于 2010-01-12T21:34:36.070 に答える