✨Hệ thống kiểu dữ liệu dùng chung

Hệ thống kiểu dữ liệu dùng chung

Trong .NET Framework của Microsoft, Hệ thống kiểu dữ liệu dùng chung (tiếng Anh: Common Type System - CTS) là một tiêu chuẩn xác định cách các định nghĩa kiểu dữ liệu và các giá trị cụ thể của các kiểu được thể hiện trong bộ nhớ máy tính. Nó giúp các chương trình viết bằng ngôn ngữ lập trình khác nhau dễ dàng chia sẻ thông tin. 

Các đặc điểm kỹ thuật của CTS được nhắc đến trong trong tiêu chuẩn Ecma 335. CLI và CTS được tạo ra bởi Microsoft, và .NET Framework là bản hiện thực hóa của tiêu chuẩn này.

Chức năng hệ thống kiểu dữ liệu dùng chung

  • Để thiết lập một khuôn khổ cho phép tích hợp chéo giữa các ngôn ngữ, an toàn kiểu và thực thi code với hiệu năng cao.
  • Cung cấp một mô hình hướng đối tượng hỗ trợ hiện thực hóa các ngôn ngữ lập trình.
  • Xác định các quy tắc mà các ngôn ngữ phải tuân theo, để đảm bảo rằng các đối tượng được viết bằng các ngôn ngữ khác nhau vẫn có thể tương tác với nhau.
  • CTS cũng định nghĩa các quy tắc đảm bảo rằng các kiểu dữ liệu của các đối tượng được viết bằng các ngôn ngữ khác nhau có thể tương tác với nhau.
  • Chỉ rõ các quy tắc về khả năng hiển thị kiểu và quyền truy cập vào các thành viên của một kiểu, nghĩa là CTS thiết lập các quy tắc theo đó các phạm vi tạo thành phạm vi cho một loại, và Common Language Runtime thi hành các quy tắc hiển thị.
  • Định nghĩa các quy tắc điều khiển kế thừa kiểu, phương thức ảo và vòng đời của đối tượng.
  • Các ngôn ngữ được.NET hỗ trợ có thể hiện thực hóa tất cả các kiểu dữ liệu hoặc chỉ một số kiểu dữ liệu thông dụng...

    Phân loại kiểu

    Hệ thống kiểu dữ liệu dùng chung hỗ trợ hai loại loại chính: ; Kiểu giá trị : Các loại giá trị trực tiếp chứa dữ liệu, và các instance của những kiểu này được phân bổ trên stack hoặc trong dòng cấu trúc. Các loại giá trị có thể là các kiểu đã được tích hợp, người dùng xác định, hoặc kiểu enum. ; Kiểu tham chiếu : Các kiểu tham chiếu lưu một tham chiếu đến địa chỉ bộ nhớ của giá trị và được phân bổ trên heap. Các kiểu tham chiếu có thể là tự mô tả, kiểu con trỏ, hoặc các kiểu interface. Các kiểu tự mô tả được phân chia thành các mảng và các loại class. Các kiểu class là các lớp mà người dùng định nghĩa, các loại giá trị boxed, và các delegate. Ví dụ sau được viết bằng Visual Basic.NET cho thấy sự khác nhau giữa các kiểu tham chiếu và các kiểu giá trị:

    Imports System

Class Class1 Public Value As Integer = 0 End Class 'Class1

Class Test Shared Sub Main() Dim val1 As Integer = 0 Dim val2 As Integer = val1 val2 = 123 Dim ref1 As New Class1() Dim ref2 As Class1 = ref1 ref2.Value = 123 Console.WriteLine("Các giá trị: {0}, {1}", val1, val2) Console.WriteLine("Các tham chiếu: {0}, {1}", ref1.Value, ref2.Value) End Sub 'hết hàm Main End Class 'hết class Test

Output của đoạn code trên là: Các giá trị: 0, 123 Các tham chiếu: 123, 123

Boxing và unboxing

Boxing (đóng hộp)

Việc chuyển đổi các kiểu giá trị sang các kiểu tham chiếu được gọi là boxing (đóng hộp). Trong ví dụ dưới đây, không cần phải cho trình biên dịch biết một Int32 được đóng hộp vào một đối tượng, bởi vì nó tự có thể đóng hộp cho chính mình.

Int32 x = 10; object o = x; // boxing ngầm định Console.WriteLine("Đối tượng o = {0}",o); // in ra dòng "Đối tượng o = 10" Tuy nhiên, các giá trị Int32 cũng có thể được đóng hộp một cách công khai như sau:Int32 x = 10; object o = (object) x; // boxing công khai Console.WriteLine("Đối tượng o = {0}",o); // in ra dòng "Đối tượng o = 10"

Unboxing (mở hộp)

Ví dụ sau hiển thị cách unbox một kiểu tham chiếu trở về một kiểu giá trị. Đầu tiên một giá trị Int32 được đóng hộp vào một đối tượng, và sau đó nó là mở hộp đối tượng đó để lấy lại giá trị. Lưu ý rằng việc mở hộp yêu cầu phải xác định rõ kiểu đích.

Int32 x = 5; object o1 = x; // boxing ngầm định x = (int) o1; // unboxing công khai
👁️ 2 | 🔗 | 💖 | ✨ | 🌍 | ⌚
Trong .NET Framework của Microsoft, **Hệ thống kiểu dữ liệu dùng chung** (tiếng Anh: Common Type System - CTS) là một tiêu chuẩn xác định cách các định nghĩa kiểu dữ liệu và các giá
Trong ngôn ngữ lập trình, **hệ thống kiểu** (tiếng Anh: _type system_) là một tập các quy tắc gán một thuộc đặc tính gọi là kiểu cho các cấu trúc khác nhau của một chương
**Cơ sở ngôn ngữ dùng chung** hoặc **Cơ sở hạ tầng ngôn ngữ dùng chung** (**Common Language Infrastructure - CLI**) là một tiêu chuẩn kỹ thuật được phát triển bởi Microsoft và được tiêu chuẩn
Trong hệ cơ sở dữ liệu, **tính nguyên tử** (tiếng Anh: atomicity, ) là một trong các tính chất ACID của giao dịch cơ sở dữ liệu. **Giao dịch nguyên tử** là dãy thao tác
thumb|Sự tăng trưởng và số hóa các khả năng lưu trữ thông tin trên toàn cầu **Dữ liệu lớn** (Tiếng Anh: **Big data**) là một thuật ngữ cho việc xử lý một tập hợp dữ
thumb|Một ví dụ về lấy dữ liệu đầu ra từ truy vấn cơ sở dữ liệu SQL. **Cơ sở dữ liệu** () là một tập hợp các dữ liệu có tổ chức liên quan đến
The X Window System logo Trong vi tính, **Hệ thống X Window** (thường được gọi tắt là **X11** hoặc **X**) là một hệ thống cửa sổ xuyên dụng mạng dùng để hiển thị đồ họa
[[KDE 3.5]] [[GNOME 2.12.0]] Trong khoa học máy tính, **Hệ thống X Window** (còn được gọi tắt là **X11** hay **X**) là một windowing system dùng để hiển thị đồ họa bitmap. Nó cung ứng
thumb|right|Một _hệ thống nhúng_ trên thẻ trình cắm có bộ xử lý, bộ nhớ, nguồn điện và giao diện bên ngoài **Hệ thống nhúng** () là một thuật ngữ để chỉ một hệ thống có
nhỏ|Ví dụ về một cây nhị phân Trong khoa học máy tính, **cây** là một cấu trúc dữ liệu được sử dụng rộng rãi gồm một tập hợp các nút (tiếng Anh: _node_) được liên
phải|nhỏ|280x280px|Kỹ thuật hệ thống được áp dụng trong các hệ thống phức tạp: Thiết kế tàu vũ trụ, Thiết kế chip máy tính, Rô bốt, Phần mềm tích hợp, xây dựng cầu đường. Kỹ thuật
**Máy truy tìm dữ liệu trực tuyến** hay **máy tìm kiếm** hay **cỗ máy tìm kiếm** (tiếng Anh: _search engine_), hay còn được gọi với nghĩa rộng hơn là **công cụ tìm kiếm** (_search tool_),
**Các hệ thống kiểm soát bay** gồm các bề mặt điều khiển bay, các hệ thống trong buồng lái, các đường kết nối và các cơ cấu hoạt động cần thiết để điều khiển hướng
Trong điện toán, khái niệm **hệ thống tập tin** hoặc **hệ thống tệp** () được dùng để chỉ các phương pháp và cấu trúc dữ liệu mà một hệ điều hành sử dụng để theo
Trong việc lập trình, các ngôn ngữ lập trình thường được coi là **kiểu yếu** hoặc **kiểu mạnh**. Nói chung thì các khái niệm này không có định nghĩa chính xác cụ thể. Thực ra,
**Hệ thống địa chỉ của Nhật Bản** được sử dụng để xác định một địa điểm cụ thể tại Nhật Bản. Khi được viết bằng các ký tự tiếng Nhật, các địa chỉ bắt đầu
Bảng sau đây so sánh các thông tin chung và chi tiết về kỹ thuật của các hệ thống quản trị cơ sở dữ liệu quan hệ. Nhắp chuột vào tên hệ thống để xem
**Lupus ban đỏ hệ thống** (tiếng Anh: **systemic lupus erythematosus**, **SLE** hay **lupus**), là một bệnh tự miễn của mô liên kết, có thể ảnh hưởng đến mọi bộ phận cơ thể. Cũng như trong
= Giới thiệu = Cùng với sự phát triển của thương mại điện tử cũng như tương tác trực tuyến của con người trong giai đoạn hiện nay, **hệ thống gợi ý** đã được nghiên
**Hệ thống thông tin địa lý** (_Geographic Information System_ - gọi tắt là **GIS**) được hình thành vào những năm 1960 và phát triển rất rộng rãi trong 10 năm lại đây. GIS ngày nay
**Hệ thống phân giải tên miền** (hay được viết tắt là **DNS** do tên tiếng Anh **_Domain Name System_**) là một hệ thống cho phép thiết lập tương ứng giữa địa chỉ IP và [https://google.com
**Tên miền cấp cao nhất dùng chung** (tiếng Anh: **generic top-level domain**, viết tắt là **gTLD**) là một tên miền cấp cao nhất được dùng (ít nhất theo lý thuyết) bởi một lớp các tổ
**Hệ thống thông tin di động toàn cầu** (tiếng Anh: _Global System for Mobile Communications_; tiếng Pháp: _Groupe Spécial Mobile_; viết tắt: **GSM**) là một công nghệ dùng cho mạng thông tin di động. Dịch
**Đồng bộ hóa dữ liệu** là quá trình trao đổi giữa các thông tin với nhau và đồng bộ hóa thông tin giữa hai nguồn dữ liệu theo thời gian. Ứng dụng của đồng bộ
**Suy luận kiểu** (tiếng Anh: _type inference_) dùng để chỉ việc tự động phát hiện kiểu dữ liệu của một biểu thức trong ngôn ngữ lập trình. Nó là một tính năng hiện diện trong
thumb|right|Hệ thống [[Tàu điện ngầm thành phố New York là hệ thống tàu điện ngầm vận hành độc lập lớn nhất trên thế giới tính theo số lượng nhà ga mà nó phục vụ, sử
**Hệ thống đánh mã máy bay quân sự của Nhật Bản** trong thời kỳ Đế quốc (trước 1945) bao gồm hệ thống cho mỗi đơn vị vũ trang. Điều này dẫn đến việc sử dụng
Một **hệ thống thời gian chuyển động được xác định trước (PMTS)** thường được sử dụng để thực hiện Chi phí phút lao động để thiết lập tỷ lệ mảnh, mức lương và/hoặc khuyến khích
phải|nhỏ|230x230px| Nhiều góc độ và chi tiết khác nhau của "MaxScan OE509" - một máy quét cầm tay chẩn đoán tích hợp (OBD) khá điển hình từ thập kỷ đầu tiên của thế kỷ 21.
**Phân tích tính toán** (Analytics) là phân tích tính toán có hệ thống của dữ liệu hoặc thống kê. Đây là quá trình phát hiện, giải thích và truyền đạt các mô hình có ý
nhỏ|Tỉnh lộ 943 đoạn đi qua Thị trấn [[Phú Hòa, Thoại Sơn, An Giang]] nhỏ|Hệ thống giao thông Việt Nam 2000 Các tuyến đường bộ, đường sắt, đường hàng không trong **mạng lưới giao thông
Máy massage cầm tay Body Innovation MA-118 là dòng máy massage toàn thân 4 trong 1, với 4 đầu massage độc đáo, thiết kế đơn giản, dễ dàng tháo lắp sử dụng, mang lại hiệu
Dưới đây là danh sách các lệnh trong tập lệnh của bytecode ngôn ngữ trung gian dùng chung. * _Các lệnh cơ sở_ tạo thành một tập lệnh Turing-hoàn-chỉnh. * _Các lệnh mô hình đối
Ngôn ngữ lập trình C có một hệ thống mở rộng cho việc **khai báo các biến của các kiểu khác nhau**. Những quy tắc dành cho các kiểu phức tạp có thể gây nhầm
Tư duy thiết kế (DT) là chủ đề của nhiều cuộc tranh luận và ứng dụng rộng rãi trên nhiều lĩnh vực kiến ​​thức khác nhau, bao gồm cả lĩnh vực thực phẩm; tuy nhiên,
**LTE** (viết tắt của cụm từ **Long Term Evolution**, có nghĩa là **Tiến hóa dài hạn**), công nghệ này được coi như công nghệ di động thế hệ thứ 4 (4G, nhưng thực chất LTE
**Hệ thống sản phẩm-dịch vụ** (tiếng Anh: **Product-service systems**, viết tắt là **PSS**_)_ là mô hình thương mại đưa ra sự phân phối có tính liên kết cả sản phẩm và dịch vụ. Các mô
[[Tập tin:SQL data types.png|nhỏ|Các kiểu dữ liệu trong ngôn ngữ SQL, một trong những ngôn ngữ truy vấn phổ biến nhất với các lập trình viên. ]] **_Ngôn ngữ truy vấn_** () là tên gọi
**Đồ họa thông tin** (tiếng Anh: _infographic_, là từ ghép của Information graphic), là sự kết hợp thông tin ngắn gọn với hình ảnh minh họa và màu sắc sinh động, bắt mắt để có
**Android** là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng.
Trong ngành điện toán, khái niệm **con trỏ rỗng** chỉ một biến con trỏ có một giá trị định sẵn khiến cho nó không trỏ được tới bất kỳ một đối tượng chính tắc nào.
thumb|Hệ thống giám sát Thụy Sĩ-Châu Âu: nhận dạng khuôn mặt và xe cộ, mẫu mã, màu sắc và biển số xe. Sử dụng tại Đức và Thụy Sĩ để giám sát và ghi lại
nhỏ|275x275px|Nhân hệ điều hành kết nối phần mềm ứng dụng với phần cứng máy tính.|thế= **Nhân hệ điều hành** () là một chương trình máy tính, là thành phần trung tâm và không thể thiếu
**Mạng nano** hay **mạng có kích thước nano** là một tập hợp các thiết bị có kích thước nano được kết nối với nhau (các thiết bị có kích thước tối đa là vài trăm
phải|Mô hình trình diễn của pin nhiên liệu metanol trực tiếp. Ngăn xếp pin nhiên liệu thực tế là hình khối lập phương ở giữa hình ảnh nhỏ|phải|Xây dựng nhiệt độ thấp [[PEMFC|Tế bào nhiên
liên_kết=https://vi.wikipedia.org/wiki/T%E1%BA%ADp tin:Autoradio_panasonic.jpg|nhỏ|Một thiết bị đầu [[ISO 7736|DIN với radio và CD]] **Hệ thống âm thanh ô tô** hoặc **âm thanh trên xe ô tô** là thiết bị được lắp đặt trên xe hơi hoặc phương
thế=A toy animal with wheels|nhỏ|Một món đồ chơi nhỏ hình động vật có bánh xe xuất hiện tại [[México|Mexico, thời kỳ tiền Colombo.]] Một số sinh vật có khả năng **chuyển động quay** hoặc **lăn**.
Nhiệt kế + CK-T1502 Nhiệt kế hồng ngoại phổ quát chất lượng cao không tiếp xúc, có thể đo chính xác trán / tai Nhiệt kế hồng ngoại không cần tiếp xúc chất lượng cao
nhỏ|275x275px| Hệ thống chia sẻ xe đạp ở [[Melbourne, Úc ]] **Hệ thống chia sẻ** **xe đạp**, **chương trình xe đạp công cộng**, hoặc chương trình **chia sẻ xe đạp công cộng** (PBS), là một
Dự luật **Đình chỉ hoạt động vi phạm bản quyền trực tuyến** (tiếng Anh: _Stop Online Piracy Act_, viết tắt tiếng Anh là **SOPA**), còn được gọi là _HR 3261_, là một dự luật được