我如何让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;
}
答案 0 :(得分:3)
我认为这不可能。
如果您真的非常关心规则,并且为了使您的代码更具可读性,我建议:
var key = new CompositeKey<EnumA, EnumB> { Item1 = EnumA.A, Item2 = EnumB.D };
string something = _someDict[key];