Điều gì xảy ra khi chúng ta Box
hoặc...
Điều gì xảy ra khi chúng ta Box
hoặc...
Trong C#, boxing và unboxing là hai quá trình chuyển đổi giữa kiểu giá trị (value type) và kiểu tham chiếu (reference type). Đối với các kiểu giá trị nullable (ví dụ: int?
hoặc Nullable<int>
), quá trình boxing và unboxing có một số đặc điểm đặc biệt:
Khi một kiểu giá trị nullable được "boxed", hai trường hợp có thể xảy ra:
null
: Quá trình boxing sẽ tạo ra một tham chiếu null
. Không có đối tượng nào được tạo ra trên heap, và tham chiếu đến kiểu nullable sẽ chỉ đến null
.null
: Giá trị thực sự của kiểu nullable sẽ được "boxed" vào một đối tượng trên heap. Điều này tương tự như quá trình boxing thông thường của một kiểu giá trị không nullable.Khi unboxing một đối tượng được "boxed" từ một kiểu nullable, quá trình ngược lại cũng có hai trường hợp tương ứng:
null
: Unboxing vào một kiểu nullable sẽ tạo ra một giá trị nullable với giá trị là null
.senior
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào