Câu hỏi

Điều gì xảy ra khi chúng ta Box hoặc Unbox các kiểu Nullable trong C#?

Câu trả lời

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:

Boxing của Kiểu Nullable

Khi một kiểu giá trị nullable được "boxed", hai trường hợp có thể xảy ra:

  1. Nếu giá trị của kiểu nullable là 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.
  2. Nếu kiểu nullable có một giá trị không phải 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.

Unboxing của Kiểu 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:

  1. Nếu tham chiếu là null: Unboxing vào một kiểu nullable sẽ tạo ra một giá trị nullable với giá trị là null.
  2. **Nếu tham chiếu không phải là `null...
Bạn cần đăng nhập để xem
senior

senior

Gợi ý câu hỏi phỏng vấn

middle

Cấu trúc dữ liệu của bạn nên triển khai interface nào để làm cho phương thức Where hoạt động?

middle

Một phương thức có thể được overload theo những cách nào trong C#?

middle

Công dụng của hàm tạo static trong C# là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào