2012-01-20 13 views
2

私は8個のboolを持つクラスを持っていますが、デバッガでこれらのboolを1または0として表現したいのですが、どうすればいいですか?DebuggerDisplay属性を使用してビットマスクを表現する方法

+0

あなたは、デバッガで真/偽としてそれらを表示することはできませんか? –

+0

8つの 'bool'フィールドや' bool'の配列がありますか? –

+0

boolである8つのプロパティを持つクラスで、obj [0-7] = trueとしてアクセスするためのインデックスもあります。 –

答えて

2

ヨは、単純なヘルパーメソッドを作成することができます

private string GetBitMask(params bool[] values) 
{ 
    var sb = new StringBuilder(); 
    foreach (var value in values) 
    { 
     sb.Append(value ? "1" : "0"); 
    } 
    return sb.ToString(); 
} 

をし、このようにそれを使用します。

[DebuggerDisplay("{GetBitMask(flag1, flag8)}")] 
public class YouClass 
{ 
    private bool flag1; 
    // ... 
    private bool flag8; 
} 

あるいは、場合にあなたがboolの配列があります

[DebuggerDisplay("{GetBitMask(flags)}")] 
public class YouClass 
{ 
    private bool[] flags; 
    // ... 
} 

編集:元のcを変更したくない場合少女は、それstatic作り、いくつかのユーティリティクラスへGetBitMask()を移動し、あなたが望む任意の場所からそれを使用します。

[DebuggerDisplay("{Utils.GetBitMask(flags)}")] 
関連する問題