2011-12-22 265 views
1

我怎麼會得到了StyleCop接受這樣的:了StyleCop:括號內的花括號

string something = _someDict[new CompositeKey<EnumA, EnumB> { Item1 = EnumA.A, Item2 = EnumB.D }]; 

這是規則SA1011和SA1013之間的衝突?

爲了您複製和粘貼方便:

private Dictionary<CompositeKey<EnumA, EnumB>, string> _someDict = new Dictionary<CompositeKey<EnumA, EnumB>, string> 
{ 
    { new CompositeKey<EnumA, EnumB> { Item1 = EnumA.A, Item2 = EnumB.D }, "AD" }, 
    { new CompositeKey<EnumA, EnumB> { Item1 = EnumA.B, Item2 = EnumB.D }, "BD" }, 
    { new CompositeKey<EnumA, EnumB> { Item1 = EnumA.A, Item2 = EnumB.E }, "AE" }, 
    { new CompositeKey<EnumA, EnumB> { Item1 = EnumA.B, Item2 = EnumB.E }, "BE" }, 
}; 

private enum EnumA 
{ 
    A, B 
} 

private enum EnumB 
{ 
    D, E 
} 

private struct CompositeKey<T1, T2> 
{ 
    public T1 Item1; 
    public T2 Item2; 
} 

回答

3

我不認爲這是可能的。

如果你真的很在乎的規則,使你的代碼更易讀,我建議:

var key = new CompositeKey<EnumA, EnumB> { Item1 = EnumA.A, Item2 = EnumB.D }; 
string something = _someDict[key];