stylecop: фигурная скобка внутри квадратной скобки - PullRequest
2 голосов
/ 22 декабря 2011

Как мне заставить 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 Ответ

3 голосов
/ 22 декабря 2011

Я не думаю, что это возможно.

Если вы действительно заботитесь о правилах и хотите сделать код более читабельным, я предлагаю:

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