Я сталкивался с этим правилом FxCop раньше и не был доволен тем, как устранять нарушения ( thread1 , thread2 ). Теперь у меня есть еще один случай, когда мне нужно исправить нарушения типа CA1819 .
В частности, у меня есть библиотека алгоритмов, которая выполняет некоторые аналитические вычисления на кривой (x, y) с общедоступным «входным объектом» вроде этого:
public class InputObject
{
public double[] X { get; set; }
public double[] Y { get; set; }
// + lots of other things well
}
Свойства X и Y этого объекта используются в сотнях мест. внутри библиотеки, обычно с использованием индексов. Входной объект никогда не изменяется алгоритмами, но на самом деле это не имеет значения. Также довольно часто вызывается .Length
. Это математическая библиотека, и double []
является там своего рода стандартным типом данных. В любом случае для исправления CA1819 потребуется немало усилий.
Я думал об использовании List
, так как списки поддерживают индексацию и очень похожи на массивы, но я не уверен, может ли это замедлить работу алгоритмов или FxCop будет доволен этими списками .
Как лучше всего заменить эти свойства double []
?