Tìm hiểu về Common Type System (CTS) trong .NET Framework

Tìm hiểu về Common Type System (CTS) trong .NET Framework

Common Type System là một phần nền tảng của .NET Framework’s Common Language Runtime (CLR). Nó định nghĩa các kiểu dữ liệu cơ bản để các ngôn ngữ khác nhau như VB.NET và C# có thể cùng sử dụng qua lại các kiểu dữ liệu.

Thành phần của CTS gồm có kiểu tham chiếu (reference) và kiểu giá trị (value). Chú ý là tất cả các kiểu dữ liệu này đều được thừa hưởng từ lớp đối tượng cơ sở Object.

Kiểu tham chiếu gồm có các kiểu: Class, Interface, Array, String và Delegate. Kiểu giá trị thì gồm các kiểu còn lại như: byte, int, char, structure…

Hình minh họa các kiểu dữ liệu của CTS:

Tìm hiểu về Common Type System (CTS) trong .NET Framework

Sự khác nhau của kiểu tham chiếu và kiểu giá trị của CTS là mỗi loại được định vị trong bộ nhớ như thế nào. Trong managed code (chưa hiểu lắm về từ này), giá trị có thể được xác định trong bộ nhớ trên một stack được quản lí bởi CLR hoặc một heap. Các biến mà được xác định trên stack được tạo ra khi hàm chứa nó được gọi hoặc khi chương trình chạy tạo ra, và được giải phóng một cách tự động khi hàm kết thúc. Còn các biến xác định trên heap thì không thể tự được giải phóng mà phải được một tiến trình gọi là garbage collector giải phóng.

Hình minh họa:
chappell5fig02[1]

Có trường hợp mà một thể hiện của một kiểu giá trị cần được chuyển sang kiểu tham chiếu. Trong trường hợp này thì kiểu giá trị có thể được chuyển về kiểu tham chiếu qua một quá trình gọi là boxing. Khi một kiểu quá trị được boxed, một vùng lưu trữ được xác định trên heap và giá trị của thể hiện (instance) đó được copy sang qua heap. Tham chiếu đến vùng này được đặt trên stack. Một boxed value là một đối tượng. và có thể được chuyển đổi về kiểu ban đầu bằng một quá trình gọi là unboxing.

 

Bạn thấy bài viết này như thế nào?: 
Average: 9 (1 vote)
Ảnh của Binh Tran Thanh

Drupal Consultant

Started my career as a drupal8 developer in EM Solutions . I love learning Web technologies like HTML, CSS, PHP, Jquery Ajax and Drupal backend . Currently working as a drupal backend developer.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Choma hy vọng khi cô chụp các đồng nghiệp của mình, họ sẽ có thêm một vài giây thư giãn và tạm thời quên đi không khí nặng nề trong các chuyến bay mùa dịch

Molly Choma, 33 tuổi, dần làm quen với những chuyến bay trống không giữa Covid-19

Bộ ảnh do tiếp viên Mỹ chụp những chuyến bay rỗng trong đại dịch là tài liệu chân thật về thời kỳ ảm đạm nhất của hàng không thế giới.

Web 2.0 - các tính năng chung

Web 2.0 - các tính năng chung

Web 2.0 đã và đang trở thành xu hướng cho người lập trình và các nhà tuyển dụng. Nhưng ít ai tự định nghĩa được cho mình web 2.0 có nghĩa là gì ?.

Xây dựng Drupal 8 trên VirtualBox và Vagrant trong Windows

Xây dựng Drupal 8 trên VirtualBox và Vagrant trong Windows

The big problem, I see, is that almost all the tool-builders for OSS web software run either Mac OS X or a flavor of Linux,

Công ty diệt chuột T&C

 

Diet con trung