Câu hỏi phỏng vấn C#
Câu hỏi

Điều gì xảy ra khi chúng ta Box hoặ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...
senior

senior

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

senior

Khi nào bạn sẽ sử dụng các delegate trong C#?

middle

Kiểu Anonymous trong C# là gì?

senior

Tại sao sử dụng câu lệnh lock trong C#?

Bình luận

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

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