我有一个静态类“默认值”,它应该保存默认矩阵,这些矩阵被转发到最后请求的接口double[][]
。到目前为止,我只是将静态属性放在返回double[][]
s 的这个类中。
现在要使其符合我们公司的编码标准,代码必须符合 FxCop 的规则CA1819,这不允许我像以前那样从属性返回锯齿状数组。而不是数组,我将返回IList
或IEnumerable
(如这里所讨论的)。
“足够公平”我想,所以我实现了返回的属性IList<IList<double>>
(尽管嵌套类型也很不酷)。但是,正如我所说,我需要使用的接口最终要求double[][]
矩阵。我不知道如何在不显式转换回每个 list的情况下将此列表列表转换为数组数组。当然,我可以,但这会产生大量开销,特别是因为我什至不访问这些矩阵 - 我只将它们传递给接口。
(PS:我知道,这是接口的错,但目前我们无法改变。)
编辑:我发现使用ILists<IList<double>>
done 无论如何都没有帮助,因为它违反了 CA1006。我采取的让 FxCop 闭嘴的简单解决方案是将属性设置为内部。无论如何,更好的解决方案如下所述。或者,可以考虑使用索引属性,但这在 C# 中有点混乱。