From MSDN về sự khác biệt giữa các Thêm hoặc Chèn một mục các ASP.NET Cache:Tại sao Cache.Add trả về một đối tượng đại diện cho mục được lưu trong bộ nhớ cache?
Note: Add và phương pháp Insert có chữ ký giống nhau, nhưng có khác biệt tinh tế giữa chúng. Trước tiên, gọi phương thức Thêm trả về một đối tượng đại diện cho mục được lưu trong bộ nhớ cache, trong khi gọi Chèn là không phải. Thứ hai, hành vi của họ là khác nếu bạn gọi những phương thức này và thêm một mục vào Bộ nhớ cache là đã được lưu trữ ở đó. Phương thức Insert thay thế mục, trong khi phương thức Thêm không thành công. [nhấn mạnh mỏ]
Phần thứ hai thật dễ dàng. Không có câu hỏi về điều đó.
Nhưng với phần đầu tiên, tại sao nó muốn trả về một đối tượng đại diện cho mục được lưu trong bộ nhớ cache? Nếu tôi đang cố gắng Thêm một mục vào bộ nhớ cache, tôi đã có/biết mục đó là gì?
Tôi không hiểu. Lý do đằng sau điều này là gì?
Đó là những gì có ý nghĩa và những gì tôi cho là ban đầu ... có thể ghi đè lên giá trị của một khóa và giá trị cũ được trả về. – kitsune
Để áp phích ban đầu, đây là một cách dễ dàng để kiểm tra xem một đối tượng được lưu trữ đã được cập nhật hay không ... – kitsune
Xin lỗi, tôi đã tìm thấy nhận xét của @ kitsune khó hiểu. Add() sẽ không _override_ giá trị của khóa (đó là những gì Insert() làm). Thay vào đó, Add() sẽ trả về a) giá trị được lưu trữ đã sử dụng khóa đó, HOẶC b) null nếu không có gì ở đó. Đối với (a) nó sẽ hủy bỏ giá trị bạn đang cố gắng thêm vào. – mrcrowl