Breaking

Chủ Nhật, 29 tháng 10, 2017

Bài 04: Kiểu dữ liệu trong C#

Biến trong C# được phân loại thành các kiểu: kiểu giá trị, kiểu tham chiếu và kiểu con trỏ.

Kiểu giá trị – value type

  • Biến kiểu này có thể được gán giá trị trực tiếp. Chúng được bắt nguồn từ class ValueType
  • Kiểu giá trị chứa dữ liệu trực tiếp. Ví dụ như kiểu intchar và float lần lượt chứa số, ký tự alphabet và số dấu chấm động. Khi ta khai báo một biến kiểu int, hệ thống cấp phát vùng nhớ để chứa giá trị.
  • Dưới đây là danh sách kiểu dữ liệu trong C#
KiểuBiểu diễnDãy giá trịGiá trị mặc định
boolGiá trị BooleanTrue hoặc FalseFalse
byteKiểu unsigned integer (8 bit)0 tới 2550
charKiểu Unicode character (16 bit)U +0000 tới U +ffff‘\0’
decimalKiểu thập phân (128 bit)(-7.9 x 1028 tới 7.9 x 1028) / 100 to 280.0M
doubleKiểu double (64 bit)(+/-)5.0 x 10-324 tới (+/-)1.7 x 103080.0D
floatKiểu float (32 bit)-3.4 x 1038 tới + 3.4 x 10380.0F
intKiểu integer (32 bit)-2,147,483,648 tới 2,147,483,6470
longKiểu signed integer (64 bit)-9,223,372,036,854,775,808 tới 9,223,372,036,854,775,8070L
sbyteKiểu signed integer (8 bit)-128 tới 1270
shortKiểu signed integer (16 bit)-32,768 tới 32,7670
uintKiểu unsigned integer (32 bit)0 tới 4,294,967,2950
ulongKiểu unsigned integer (64 bit)0 tới 18,446,744,073,709,551,6150
ushortKiểu unsigned integer (16 bit)0 tới 65,5350
  • Để biết chính xác độ lớn của một kiểu dữ liệu hoặc một biến bạn có thể sử dụng phương thức sizeof. Biểu thức sizeof(type) trả về kích thước lưu trữ của đối tượng hoặc kiểu theo đơn vị byte. Sau đây là một ví dụ để lấy kích thước của biến kiểu int:
Kết quả khi biên dịch và thực thi đoạn code trên là dòng chữ:
Kích thước một số kiểu dữ liệu
NameCTS TypeSize
sbyteSystem.SByte8
shortSystem.Int1616
intSytem. Int3232
longSytem. Int6464
byteSystem.SByte8
ushortSystem.UInt1616
uintSystem.UInt3232
ulongSystem.UInt6464
floatSystem.Single32
doubleSystem.Double64
decimalSystem.Decimal128
boolSystem.Boolean
charSystem.Char16

Kiểu tham chiếu – reference type

Kiểu này không chứa dữ liệu thực sự mà nó chứa một sự tham khảo trong biến. Nói cách khác, nó tham chiếu tới một vùng nhớ. Kiểu tham chiếu có thể tạo ra nhiều biến cùng tham chiếu đến một vùng nhớ. Nếu dữ liệu trong vùng nhớ bị thay đổi bới một biến nào đó, thì những biến khác cũng sẽ thay đổi giá trị một cách tự động. Ví dụ objectdynamic và string là kiểu tham chiếu.
  • Kiểu object: là class nền tảng cơ bản cho mọi kiểu dữ liệu trong C# common type system (CTS). Object là một bí danh của class Object. Kiểu object có thể gán giá trị của mọi kiểu dữ liệu khác, kiểu giá trị, kiểu tham chiếu, kiểu định nghĩa trước hoặc do người dùng định nghĩa. Tuy nhiên trước khi gán giá trị, nó cần chuyển kiểu. Khi chuyển kiểu value sang object, đó được gọi là boxing và mặt khác, khi kiểu object được chuyển sang kiểu value được gọi là unboxing.
Ví dụ: 
  • Kiểu dynamic: ta có thể lưu bất kỳ kiểu giá trị nào trong biến kiểu dữ liệu động. Kiểm tra kiểu cho kiểu của biến dynamic diễn ra vào thời gian chạy. Cú pháp để khai báo biến kiểu dynamic là:
Kiểu dynamic tương tự kiểu object ngoại trừ kiểm tra kiểu cho kiểu biến object diễn ra tại thời điểm biên dịch, nhưng trái lại kiểm tra kiểu cho kiểu dynamic diễn ra vào thời gian chạy.
  • Kiểu string: cho phép gán giá trị là chuỗi vào biến. Kiểu string là một bí danh của class String. Nó có nguồn gốc từ kiểu object. Giá trị gán sử dụng một trong 2 cách quotedvà @quoted.
Ví dụ:
  • Những kiểu tham chiếu do người dùng định nghĩa là classinterface hoặc delegate.

Kiểu con trỏ – pointer type

Biến kiểu con trỏ lưu địa chỉ bộ nhớ của kiểu khác. Con trỏ trong C# có cùng khả năng như con trỏ trong C hoặc C++. Cú pháp để khai báo biến kiểu con trỏ là: type* identifier,
Ví dụ:

Không có nhận xét nào:

Đăng nhận xét

Adbox