Sakura
Thú CƯng :
Số bài viết : 1124 Điểm : 1688 Được cảm ơn : 35 Ngày sinh : 03/11/1990 Tham gia ngày : 16/03/2010 Tuổi : 34 Đến từ : Bình Dương Ngề nghiệp : IT Student
| Tiêu đề: Boxing And Unboxing 9/10/2010, 18:56 | |
| Hôm bữa học buổi đầu tiên, thầy có nói đến 2 khái niệm này, nhưng nhanh quá, nên nhiều bạn không hỉu! Nay mình soạn bài này, mong là các bạn có thể hỉu thêm: Boxing: đơn giản là đưa giá trị của các KDL cơ bản vào các đối tượng, việc này được thực hiện một cách ngầm định. - Code:
-
using System;
class Test { public static void Main() { int i = 100; object a = i; Console.WriteLine("Gia Tri Cua a = {0}", a); } } Và ngược lại, Unboxing là hành động đưa giá trị của các đối tượng vào các KDL cơ bản! Tuy nhiên, việc này phải được thực hiện một cách tường minh và phải chắc chắn rằng đối tượng đã Boxing vào đúng KDL mong muốn.Chúng ta không thể thực hiện việc này 1 cách ngầm định như dưới đây được: - Code:
-
using System;
class Test { public static void Main() { object a = 100; int i = a; Console.WriteLine("Gia Tri Cua i = {0}", i); } } Cannot implicitly convert type 'object' to 'int'. An explicit conversion exists (are you missing a cast?) Nghĩa là ko thể chuyển kiểu ngầm định từ kiểu object sang int được, cần có 1 sự chuyển kiểu tường minh rõ ràng. Và chúng ta sẽ phải làm như thế này: - Code:
-
using System;
class Test { public static void Main() { object a = 100; int i = (int)a; Console.WriteLine("Gia Tri Cua i = {0}", i); } } Và như vậy chắc chắn là ko hợp lệ - Code:
-
using System;
class Test { public static void Main() { object a = "121212"; int i = (int)a; Console.WriteLine("Gia Tri Cua i = {0}", i); } } Vì chúng ta đã chuyển kiểu 1 cách không hợp lệ, và chương trình sẽ có lỗi. Mình nói sơ sơ vậy thôi, chắc cũng ko quá khó he! |
|