stylecop:方括号内的大括号

发布于 2024-12-22 16:03:06 字数 903 浏览 3 评论 0原文

我如何让 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;
}

How would I get stylecop to accept something like:

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

Is this a collision between rules SA1011 and SA1013?

For your copy-and-paste convenience:

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;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

素手挽清风 2024-12-29 16:03:06

我认为这是不可能的。

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

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

I don't think it's possible.

If you really care that much about the rules, and to make your code more readable, I suggest:

var key = new CompositeKey<EnumA, EnumB> { Item1 = EnumA.A, Item2 = EnumB.D };
string something = _someDict[key];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文