Bài 2 – Boxing Và UnBoxing (Phần Tiếp Theo)

0
311

Như lần trước khi trò truyện và trao đổi với bạn Boo . Chúng ta có nghe đến thuật ngữ Boxing và UnBoxing theo như bạn Boo của tôi nói rằng thì đây là quá trình :

Bạn có thể chuyển đổi từ kiểu dữ liệu này sang kiểu dữ liệu khác qua

Boxing

Chi tiết của quá trình Boxing được tôi kết luận lại như sau :

[box type=”info” ]

Boxing

Bạn có thể dễ dàng hình dung quá trình này thông qua tên gọi của nó, nghĩa là một giá trị được đưa vào bên trong một đối tượng. Nói cách khác, boxing là những xử lý cho phép kiểu dữ liệu giá trị như (int, unint, long…) được đối xử như kiểu tham chiếu ( các đối tượng). Và quá trình boxing được thực hiện ngầm định.

[/box]

Đây là chương trình minh họa quá trình trên.

using System; class Boxing { public static void Main() { int i = 123; object o = i; Console.WriteLine(The object value = {0}, o); Console.ReadLine(); } }

Vâng như vậy là chúng ta đã hiểu phần nào về việc Boxing một giá trị . Từ đó có thể uyển chuyển hơn trong việc sử dụng kiểu dữ liệu . Vậy một câu hỏi đặt ra là gì khi đã Boxing rồi thì làm sao để quay ngược lại quá trình đó . Hãy cùng tìm hiểu quá trình UnBoxing nhé . Và một lần nữa hãy nhờ bạn Boo của tôi giải quyết vấn để này cho chúng ta.

[box type=”info” ]

* Unboxing*

là quá trình ngược lại với boxing, tức là đưa từ một đối tượng ra một giá trị . Quá trình này sẽ được thực hiện một cách tường minh. Và để thực hiện được điều này bạn cần chắc chắn rằng đối tượng đã được boxing đúng kiểu giá trị đưa ra và sao chép giá trị từ thể hiện hay đối tượng vào biến kiểu giá trị

[/box]

Hình dưới đây mô tả quá trình unboxing. Như bạn thấy nó ngược lại với quá trình boxing ở trên

Unboxing

Đây là chương trình minh họa cả quá trình boxing và unboxing:

using System; public class Unboxing { public static void Main() { int i = 123; // Boxing object o = i; // Unboxing phải được thực hiện tường minh tường minh int k = (int) o; Console.WriteLine(k: {0}, k); } }

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 Exception (Ngoại lệ) sẽ được phát sinh, nói đơn giản là một cái lỗi ấy . Chúng ta sẽ cùng bàn về vấn đề này trong những bài sau nhé.

Một lần nữa xin cảm ơn bạn Boo !

Cậu còn phải ghi ơn tôi một chặng đường dài nữa đấy – Boo thản thiên đáp !

LEAVE A REPLY

Please enter your comment!
Please enter your name here