之前我遇到过这个FxCop规则,并不满足于如何解决违规(thread1,thread2).我现在有另一个案例需要纠正违反CA1819的行为.
具体来说,我有一个算法库,它在曲线(x,y)上执行一些分析计算,公共"输入对象"如下:
public class InputObject
{
public double[] X { get; set; }
public double[] Y { get; set; }
// + lots of other things well
}
Run Code Online (Sandbox Code Playgroud)
此对象的X和Y属性在库中的数百个位置中使用,通常使用索引.输入对象永远不会被算法改变,但实际上它应该无关紧要.而且,.Length经常被称为.它是一个数学库,并且double[]是那里的标准数据类型.无论如何,修复CA1819将需要相当多的工作.
我考虑使用List<double>,因为Lists支持索引并且与数组非常相似,但我不确定这是否会减慢算法速度或者FxCop是否会对这些列表感到满意.
更换这些double[]属性的最佳选择是什么?