tôi đang trải qua Edulinq bởi Jon Skeet, và tôi đi qua đoạn mã sau, trang 23, trong đó ông thực hiện cơ chế bộ nhớ cache cho Empty()
điều hành của LINQJon Skeet Edulinq - Rỗng Mảng Caching
private static class EmptyHolder<T>
{
internal static readonly T[] Array = new T[0];
}
Câu hỏi của tôi là, làm thế nào điều này thực sự bộ nhớ cache biến Array
?
Tùy chọn, Tính năng này hoạt động như thế nào trong CLR?
Chỉnh sửa: Cũng theo sau đó, anh đề cập đến có một cuộc nổi dậy chống lại một mảng. Tại sao mọi người không nên trả lại một mảng (ngay cả khi nó có kích thước 0?)?
Giá trị của 'Array' được lưu cho các đời của ứng dụng sau khi 'EmptyHolder' là đầu tiên được tham chiếu, do nó là tĩnh. –
Matthew