Tôi đã gặp quy tắc FxCop này trước đây và không thực sự hài lòng với cách giải quyết các vi phạm (thread1, thread2). Bây giờ tôi có trường hợp khác mà tôi cần sửa các vi phạm loại CA1819.CA1819: Thuộc tính không được trả về mảng - Giải pháp thay thế phù hợp là gì?
Cụ thể, tôi có một thuật toán-thư viện mà thực hiện một số tính toán phân tích trên một đường cong (x, y), với một "đối tượng đầu vào" công cộng như thế này:
public class InputObject
{
public double[] X { get; set; }
public double[] Y { get; set; }
// + lots of other things well
}
X và Y thuộc tính của đối tượng này là được sử dụng trong hàng trăm vị trí trong thư viện, thường sử dụng các chỉ mục. Các đối tượng đầu vào không bao giờ được thay đổi bởi các thuật toán, nhưng thực sự nó không quan trọng nếu như vậy. Ngoài ra, .Length
được gọi là khá thường xuyên. Đó là một thư viện toán học và double[]
là loại dữ liệu chuẩn trong đó. Trong mọi trường hợp, việc sửa CA1819 sẽ yêu cầu khá nhiều công việc.
Tôi đã nghĩ về việc sử dụng List<double>
, vì danh sách hỗ trợ lập chỉ mục và khá giống với mảng nhưng tôi không chắc liệu điều này có làm chậm thuật toán hay không hoặc FxCop có hài lòng với những Danh sách đó hay không.
Tùy chọn nào tốt nhất để thay thế các thuộc tính double[]
này?
@skk đó là 'thread1' câu hỏi liên kết đến ... – AakashM
(lưu ý rằng bạn phải mã định dạng dấu ngoặc nhọn để chúng xuất hiện) – AakashM