3

我正在修改我的所有代码以符合 FxCop,这意味着放弃很多数组、列表以支持 ReadOnlyCollection,我同意这个建议。然而,当生产一个

ReadOnlyCollection<ReadOnlyCollection<T>> 

替换二维数组或

List<List<T>> I now get the 

CA1006:不要在成员签名中嵌套泛型类型

抱怨。首先,虽然它看起来很笨拙,但它似乎并不复杂或难以理解,因为它本质上是一个不可变List<List<T>>的,我认为考虑到数组的缺点,这非常常见。其次,我想不出存储二维数据并且不可变的替代方案,除非我要为此创建一个新类型。

请问这里的最佳做法是什么。难道这个 FxCop 规则在这里并不真正适用,应该被禁止吗?

非常感谢。

4

1 回答 1

-1

这篇文章的评论似乎也适用于这里:

该警告是一个通用警告,旨在帮助您设计更好、更简单的公共界面。在这种情况下,您会收到有关在方法中包含 Expression> 参数的警告。但是,对于这种方法,简化类型没有意义,相反,您应该使用属性抑制警告或从规则集中完全删除规则。

您可能应该考虑遵循规则建议的一个愚蠢示例是这样的方法:

公共无效F(Dictionary<String, List<Tuple<<String, Int32>>> 字典);

Martin Liversage 的回答@https : //stackoverflow.com/a/14945331/1775528

于 2016-06-03T15:31:33.960 回答