Khám phá các loại giá trị và loại tham chiếu
- 8 phút
Với nhiều kiểu dữ liệu sẵn dùng trong C#, việc chọn kiểu dữ liệu phù hợp để sử dụng có nghĩa là bạn cần hiểu khi nào bạn có thể chọn kiểu dữ liệu này hơn kiểu khác.
Trước khi thảo luận lý do bạn có thể chọn một kiểu dữ liệu so với kiểu dữ liệu khác, bạn cần hiểu thêm về các kiểu dữ liệu. Bạn cũng cần biết cách hoạt động của dữ liệu và kiểu dữ liệu trong C# và .NET.
Dữ liệu là gì?
Việc trả lời câu hỏi "dữ liệu là gì" tùy thuộc vào người bạn hỏi và bạn đang đặt câu hỏi theo ngữ cảnh nào.
Trong phát triển phần mềm, dữ liệu về cơ bản là một giá trị được lưu trữ trong bộ nhớ của máy tính như một loạt các bit. Một bit là một khóa chuyển nhị phân đơn giản được biểu thị dưới dạng a 0 hoặc 1, hay đúng hơn là "tắt" và "bật". Một bit có vẻ không hữu ích, tuy nhiên khi bạn kết hợp 8 bit với nhau theo trình tự, chúng tạo thành một byte. Khi được dùng trong một byte, mỗi bit nhận một ý nghĩa trong trình tự. Trong thực tế, bạn có thể đại diện cho 256 kết hợp khác nhau chỉ với 8 bit nếu bạn sử dụng hệ thống số nhị phân (cơ số 2).
Ví dụ, trong một hệ thống số nhị phân, bạn có thể đại diện cho số dưới 195 dạng 11000011. Bảng sau đây giúp bạn trực quan hóa cách thức hoạt động. Hàng đầu tiên có tám cột tương ứng với một vị trí theo byte. Mỗi vị trí đại diện cho một giá trị số khác nhau. Hàng thứ hai có thể lưu trữ giá trị của một bit riêng lẻ hoặc 01.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
Nếu bạn cộng tổng 1 số từ mỗi cột trong hàng thứ nhất tương ứng với số trong hàng thứ hai, bạn sẽ có được số thập phân tương đương với biểu diễn hệ thống số nhị phân. Trong trường hợp này, nó sẽ là 128 + 64 + 2 + 1 = 195.
Để làm việc với các giá trị lớn hơn 255, máy tính của bạn lưu trữ nhiều byte hơn (thường là 32 bit hoặc 64 bit). Nếu bạn đang làm việc với hàng triệu số lớn trong một cài đặt khoa học, bạn có thể cần cân nhắc cẩn thận hơn về loại dữ liệu bạn đang sử dụng. Mã của bạn có thể yêu cầu nhiều bộ nhớ hơn để chạy.
Còn dữ liệu dạng văn bản thì sao?
Nếu một máy tính chỉ hiểu s và 0s 1, sau đó làm thế nào nó cho phép bạn làm việc với văn bản? Sử dụng hệ thống như ASCII (American Standard Code for Information Interchange), bạn có thể sử dụng một byte đơn để đại diện cho chữ hoa và chữ thường, số, tab, backspace, dòng mới và nhiều ký hiệu toán học.
Ví dụ, nếu bạn muốn a lưu trữ một chữ thường dưới dạng một giá trị trong ứng dụng của tôi, máy tính sẽ chỉ hiểu được dạng nhị phân của giá trị đó.
a Để hiểu rõ hơn cách xử lý chữ thường do máy tính xử lý, tôi cần xác định bảng ASCII cung cấp các giá trị ASCII và các giá trị tương đương thập phân của chúng. Bạn có thể tìm kiếm thuật ngữ "THẬP phân tra cứu ASCII" để định vị tài nguyên như vậy trực tuyến.
Trong trường hợp này, chữ thường tương a đương với giá trị thập phân 97. Sau đó, bạn sẽ sử dụng cùng một hệ thống nhị phân chữ số ngược lại để tìm cách một chữ cái ASCII a được lưu trữ bởi máy tính.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
Vì 64 + 32 + 1 = 97, mã ASCII nhị phân 8-bit cho là a01100001.
Có thể bạn sẽ không bao giờ cần phải tự mình thực hiện các loại chuyển đổi này nhưng việc hiểu quan điểm dữ liệu của máy tính là một khái niệm cơ bản, đặc biệt là khi bạn đang xem xét các kiểu dữ liệu.
Kiểu dữ liệu là gì?
Kiểu dữ liệu là một cách ngôn ngữ lập trình xác định dung lượng bộ nhớ cần lưu cho một giá trị. Có nhiều kiểu dữ liệu trong ngôn ngữ C# sẽ được sử dụng cho nhiều ứng dụng và kích cỡ dữ liệu khác nhau.
Đối với hầu hết các ứng dụng bạn xây dựng trong sự nghiệp, bạn sẽ giải quyết trên một tập con nhỏ tất cả các kiểu dữ liệu có sẵn. Tuy nhiên, điều quan trọng là phải biết người khác đang tồn tại và tại sao.
Các loại giá trị so với tham chiếu
Mô-đun này tập trung vào hai loại loại trong C#: loại tham chiếu và loại giá trị.
Các biến số của kiểu tham chiếu lưu trữ tham chiếu đến dữ liệu (đối tượng) của chúng, nghĩa là chúng trỏ tới các giá trị dữ liệu được lưu trữ ở nơi khác. Trong so sánh, các biến số của các kiểu giá trị trực tiếp chứa dữ liệu của chúng. Khi bạn tìm hiểu thêm về C#, các chi tiết mới xuất hiện liên quan đến sự khác biệt cơ bản giữa các loại giá trị và tham chiếu.
Các loại giá trị đơn giản
Các loại giá trị đơn giản là tập hợp các loại được xác định trước do C# cung cấp dưới dạng từ khóa. Các từ khóa này là biệt danh (biệt danh) cho các loại được xác định trước được xác định trong Thư viện Lớp .NET. Ví dụ: từ khóa C# là int biệt danh của kiểu giá trị được xác định trong Thư viện Lớp .NET là System.Int32.
Các loại giá trị đơn giản bao gồm nhiều kiểu dữ liệu mà bạn có thể đã sử dụng đã thích char và bool. Cũng có nhiều loại giá trị dấu chấmđộng và số nguyên để đại diện cho một loạt các số nguyên và số thập phân.
Recap
- Các giá trị được lưu trữ dưới dạng bit, rất đơn giản với công tắc bật/tắt. Việc kết hợp đủ các khóa chuyển này cho phép bạn lưu trữ hầu như mọi giá trị có thể.
- Có hai thể loại dữ liệu cơ bản: loại giá trị và loại tham chiếu. Sự khác biệt là cách thức và vị trí các giá trị được lưu trữ bởi máy tính khi chương trình của bạn thực thi.
- Các loại giá trị đơn giản sử dụng biệt danh từ khóa để đại diện cho tên chính thức của các loại trong Thư viện .NET.