2011-12-22 270 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];