C # - Các kiểu dữ liệu
Các biến trong C #, được phân loại thành các loại sau:
- Các loại giá trị
- Các loại tham chiếu
- Các loại con trỏ
Loại giá trị
Các biến kiểu giá trị có thể được gán giá trị trực tiếp. Chúng có nguồn gốc từ lớp System.ValueType.
Các loại giá trị trực tiếp chứa dữ liệu. Một số ví dụint, char, and float, nơi lưu trữ các số, bảng chữ cái và số dấu phẩy động, tương ứng. Khi bạn khai báo mộtint gõ, hệ thống cấp phát bộ nhớ để lưu giá trị.
Bảng sau liệt kê các kiểu giá trị có sẵn trong C # 2010 -
Kiểu | Đại diện | Phạm vi | Giá trị mặc định |
---|---|---|---|
bool | Giá trị boolean | Đúng hay sai | Sai |
byte | Số nguyên không dấu 8 bit | 0 đến 255 | 0 |
char | Ký tự Unicode 16 bit | U +0000 đến U + ffff | '\ 0' |
thập phân | Giá trị thập phân chính xác 128 bit với 28-29 chữ số có nghĩa | (-7,9 x 10 28 đến 7,9 x 10 28 ) / 10 0 đến 28 | 0,0 triệu |
gấp đôi | Loại dấu phẩy động chính xác kép 64 bit | (+/-) 5,0 x 10 -324 đến (+/-) 1,7 x 10 308 | 0.0D |
Phao nổi | Loại dấu phẩy động chính xác đơn 32 bit | -3,4 x 10 38 đến + 3,4 x 10 38 | 0,0F |
int | Kiểu số nguyên có dấu 32 bit | -2.147.483.648 đến 2.147.483.647 | 0 |
Dài | Loại số nguyên có dấu 64-bit | -9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807 | 0L |
sbyte | Kiểu số nguyên có dấu 8 bit | -128 đến 127 | 0 |
ngắn | Kiểu số nguyên có dấu 16 bit | -32,768 đến 32,767 | 0 |
uint | Kiểu số nguyên không dấu 32 bit | 0 đến 4,294,967,295 | 0 |
dài | Kiểu số nguyên không dấu 64 bit | 0 đến 18.446.744.073.709.551.615 | 0 |
ushort | Kiểu số nguyên không dấu 16 bit | 0 đến 65,535 | 0 |
Để có được kích thước chính xác của một loại hoặc một biến trên một nền tảng cụ thể, bạn có thể sử dụng sizeofphương pháp. Biểu thức sizeof (type) mang lại kích thước lưu trữ của đối tượng hoặc kiểu tính bằng byte. Sau đây là một ví dụ để lấy kích thước của kiểu int trên bất kỳ máy nào:
using System;
namespace DataTypeApplication {
class Program {
static void Main(string[] args) {
Console.WriteLine("Size of int: {0}", sizeof(int));
Console.ReadLine();
}
}
}
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Size of int: 4
Loại tham chiếu
Các kiểu tham chiếu không chứa dữ liệu thực tế được lưu trữ trong một biến, nhưng chúng chứa một tham chiếu đến các biến.
Nói cách khác, chúng đề cập đến một vị trí bộ nhớ. Sử dụng nhiều biến, các kiểu tham chiếu có thể tham chiếu đến một vị trí bộ nhớ. Nếu dữ liệu trong vị trí bộ nhớ bị thay đổi bởi một trong các biến, thì biến kia sẽ tự động phản ánh sự thay đổi này về giá trị. Ví dụ củabuilt-in các loại tham chiếu là: object, dynamic, và string.
Loại đối tượng
Các Object Typelà lớp cơ sở cuối cùng cho tất cả các kiểu dữ liệu trong C # Common Type System (CTS). Đối tượng là một bí danh cho lớp System.Object. Các kiểu đối tượng có thể được gán giá trị của bất kỳ kiểu nào khác, kiểu giá trị, kiểu tham chiếu, kiểu được xác định trước hoặc do người dùng xác định. Tuy nhiên, trước khi gán giá trị, nó cần chuyển đổi kiểu.
Khi một kiểu giá trị được chuyển đổi thành kiểu đối tượng, nó được gọi là boxing và mặt khác, khi một kiểu đối tượng được chuyển đổi thành kiểu giá trị, nó được gọi là unboxing.
object obj;
obj = 100; // this is boxing
Loại động
Bạn có thể lưu trữ bất kỳ loại giá trị nào trong biến kiểu dữ liệu động. Việc kiểm tra kiểu cho các loại biến này diễn ra tại thời điểm chạy.
Cú pháp để khai báo một kiểu động là:
dynamic <variable_name> = value;
Ví dụ,
dynamic d = 20;
Kiểu động tương tự như kiểu đối tượng ngoại trừ việc kiểm tra kiểu đối với các biến kiểu đối tượng diễn ra tại thời điểm biên dịch, trong khi việc kiểm tra kiểu đối với các biến kiểu động diễn ra vào thời gian chạy.
Loại chuỗi
Các String Typecho phép bạn gán bất kỳ giá trị chuỗi nào cho một biến. Kiểu chuỗi là một bí danh cho lớp System.String. Nó có nguồn gốc từ kiểu đối tượng. Giá trị cho kiểu chuỗi có thể được gán bằng cách sử dụng các ký tự chuỗi ở hai dạng: được trích dẫn và @ được trích dẫn.
Ví dụ,
String str = "Tutorials Point";
Một chuỗi ký tự @ được trích dẫn trông như sau:
@"Tutorials Point";
Các kiểu tham chiếu do người dùng xác định là: lớp, giao diện hoặc đại biểu. Chúng ta sẽ thảo luận về các loại này trong chương sau.
Loại con trỏ
Các biến kiểu con trỏ lưu trữ địa chỉ bộ nhớ của kiểu khác. Con trỏ trong C # có cùng khả năng với con trỏ trong C hoặc C ++.
Cú pháp khai báo kiểu con trỏ là:
type* identifier;
Ví dụ,
char* cptr;
int* iptr;
Chúng ta sẽ thảo luận về các loại con trỏ trong chương 'Mã không an toàn'.