stylecop:方括号内的花括号

时间:2011-12-22 18:21:30

标签: c# visual-studio-2010 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;
}

1 个答案:

答案 0 :(得分:3)

我认为这不可能。

如果您真的非常关心规则,并且为了使您的代码更具可读性,我建议:

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