Thực tiễn tốt nhất để xử lý các đối tượng trong hoặc vòng lặp là gì? Chúng ta có nên tạo một đối tượng bên ngoài các vòng lặp và tạo lại nó một lần nữa (sử dụng mới ...) hoặc tạo một đối tượng mới cho mỗi vòng lặp lặp lại không?
Ví dụ:Thực tiễn tốt nhất để tạo các đối tượng được sử dụng trong/vòng lặp foreach
foreach(var a in collection)
{
SomeClass sc = new SomeClass();
sc.id = a;
sc.Insert();
}
hoặc
SomeClass sc = null;
foreach(var a in collection)
{
sc = new SomeClass();
sc.id = a;
sc.Insert();
}
Đó là tốt hơn?
+1 - đối tượng chỉ nên được khai báo ở đâu và khi nào cần. Nếu bạn cần int i trong vòng lặp for, hãy khai báo nó trong vòng lặp for chứ không phải ở trên cùng của phần thân hàm. Xem mã hoàn thành :). – JonH
Trong khai báo biến .Net thực sự là siêu dữ liệu cho phương thức. Vị trí thực tế của nơi mà biến được tạo ra trong mã chỉ ảnh hưởng đến phạm vi cho trình biên dịch ... Nói cách khác, không có sự khác biệt về hiệu năng giữa hai ví dụ này. –
Ngày xửa ngày xưa, có sự khác biệt nhỏ về IL được tạo ra giữa hai vòng lặp (giống với Java và C++), mặc dù không đủ để quan tâm. Không chắc chắn nếu các trình biên dịch hiện tại đã thay đổi đó hoặc nếu CLR tối ưu hóa thêm IL đi. –