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

 
[Phần 6] - Testing: Unit và Functional với PHPUnit

[Phần 6] - Testing: Unit và Functional với PHPUnit

So far we have explored a good amount of ground looking at a number of core concepts with regards to Symfony2 development. Before we continue adding features it is time to introduce testing.

iPhone thế chân BlackBerry tại công sở

iPhone thế chân BlackBerry tại công sở

Theo báo cáo mới nhất từ công ty nghiên cứu iPass, lần đầu tiên trong lịch sử, iPhone của Apple được sử dụng cho công việc nhiều hơn BlackBerry của Research In Motion (RIM).

Apple thử nghiệm máy tính bảng màn hình nhỏ

Apple thử nghiệm máy tính bảng màn hình nhỏ

Tập đoàn Apple đang hợp tác với các nhà cung cấp linh kiện ở Châu Á để thử nghiệm môt loại máy tính bảng mới với màn hình nhỏ hơn trong nỗ lực tìm kiếm mở rộng dòng sản phẩm trong bối cảnh cạnh tranh khốc liệt...

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

 

Diet con trung