Unboxing phải được thực hiện tường minh

Một phần của tài liệu Tài Liệu Học Ngôn Ngữ Lập Trình C#_p4 docx (Trang 25 - 27)

Việc đưa một giá trị vào một đối tượng được thực hiện một cách ngầm định. Và sự thực hiện ngược lại, unboxing, tức là đưa từ một đối tượng ra một giá trị phải được thực hiện một cách tường minh. Chúng ta phải thiết lập theo hai bước sau:

Ngôn Ngữ Lập Trình C#

 

Phải chắc chắn rằng đối tượng đã boxing đúng kiểu giá trị đưa ra. Sao chép giá trị từ thể hiện hay đối tượng vào biến kịểu giá trị.

Stack i i 123 int i = 123; Heap o 123 i boxed Int 123 object o=i; k 123 int k = (int)o;

Hình 5.6: Unboxing sau khi thực hiện Boxing.

Để thực hiện unboxing thành công, thì đối tượng được unboxing phải được tham chiếu đến một đối tượng, và đối tượng này đã được tạo ra bằng việc boxing một giá trị cùng với kiểu của giá trị được đưa ra. Boxing và Unboxing được minh họa trong ví dụ 5.5.

Ví dụ 5.5: Boxing và Unboxing.

--- using System;

public class UnboxingTest {

public static void Main() {

int i = 123; // Boxing object o = i;

// Unboxing phải được tường minh int k = (int) o;

} } }

---

Ví dụ 5.5 tạo một số nguyên i và thực hiện boxing ngầm định khi i được gán cho một đối tượng o. Sau đó giá trị được unboxing một cách tường minh và gán đến một biến nguyên int mới, và cuối cùng giá trị được hiển thị.

Thông thường, chúng ta sẽ bao bọc các hoạt động unboxing trong khối try, sẽ được trình bày trong Chương 13. Nếu một đối tượng được Unboxing là null hay là tham chiếu đến một đối tượng có kiểu dữ liệu khác, một InvalidCastException sẽ được phát sinh.

Một phần của tài liệu Tài Liệu Học Ngôn Ngữ Lập Trình C#_p4 docx (Trang 25 - 27)

Tải bản đầy đủ (PDF)

(40 trang)