tailieunhanh - Buit Windows By C.Net part 7

Khi tiến trình tạo mới 1 tiểu trình (thread), Windows gọi hàm DllMain của tất cả các thư viện DLL đang được sử dụng với tiến trình đó | CHƯƠNG 1-4 Làm việc VỚI bộ quán lý C 63 và truyền chúng đến các hàm khác. Với lý do này bộ thực thi được quản lý dùng kỹ thuật đóng hộp boxing câ u trúc dơn giản trong một đô i tượng bao bọc đang giữ bản sao của dữ liệu gốc nhưng đâ bị gán lại trên heap được quán lý. Nhằm chuẩn bị cho cấu trúc đơn giản của chính bạn đế dùng như một kiêu dữ liệu bạn có thế dùng từ khóa_value __value struct Birthday int day int month int year Cũng lưu ý rằng từ khóa_value không tác động đến từ khóa _gc bói vậy nếu bạn muôn gán được kiểu giá trị của minh trên vùng heap được quản lý bạn phải dừng cả hai điều chỉnh như sau __value__gc struct Birthday int day int month int year Lưu Ý Thứ tự của các điếu chỉnh là quan trọng. Nếu bạn dùng _gc _value bạn sẽ bị lỗi. Ví dụ trình bày một kỹ thuật có thể làm cho bất kỳ lập trình viên C nào cũng phái nản lòng. Nó tạo các giá trị dơn giản trẽn stack nội bộ và truyền coh trỏ đến chúng để gói gọn chúng trong một tập hợp. Với C không được quán lý nó có thể tạo ra một lỗi tai hại khi tập hợp đó cô gắng đê tham kháo đến các item mà hiện đã ớ ngoài phạm vi. Dưới Managed C bộ thu gom rác sẽ quán lý dòng đời cùa các giá trị được tham khảo đến và sẽ không cho phép chúng bị xóa cho đến khi tất cả mọi thứ đều đi ra khỏi chúng. Vi dụ Kiểu giá trị dưới sự điểu khiển của GC using using namespace System using namespace System Collections __value struct simple int i float f __gc class ref demo PHẦN I Mở dầu H64 ArrayLỉst 1 public ref demo l new ArrayLiđt void Add Object o l- Add o void create int n. Object pO simple s n n pO __box 8 void init for int x 0 x 10 x Object pO create x p0 Add pO void show for intx 0 X 1- get Count X . . .try . . 1 . simple pS __try cast simple l- get_Item x Console WriteLine 0 PI 1 __box pS- i __box pS- f catch System InvalidCastException Console WriteLine Bad_try_cast T CHƯƠNG 1-4 Làm việc với bộ quản lý C 65s void main reEdemo pD new ref demo pD- init tạo ra danh sách giá trị