Value Types and Reference Types
A. Value Type
1. VariablesKhi bạn khai báo một biến, nó được cấp phát một chỗ trên bộ nhớ Ram. Vùng nhớ của biến lúc này có 3 thành phần: Kiểu của biến (Type), tên của biến (Name) và giá trị của biến đó (Value)
Kiểu: là từ khóa được dùng để xác định loại giá trị của biến. Mỗi kiểu giá trị đều có giới hạn mặc định
Biến: là tên do người lập trình đặt ra được sử dụng để đại diện cho dữ liệu trong thời gian thực hiện chương trình.
Giá trị: Chính là dữ liệu của biến đó đại diện
Như hình trên, ta có biến a với kiểu dữ liệu là int và ta gán giá trị cho nó là 5. Bạn cần biết rằng trong C# biến được lưu trữ qua hai cách là Stack và Heap.
Stack dùng tham số (parameters) và địa chỉ biến, hoặc thêm một số thông tin khác. Nó thường dùng cho Value Types. Ngược lại Heap được dùng lưu trữ các đối tượng của Reference Types
2. Bảng giá trị của các Value Type trong C#
Type | Thể Hiện Kiểu | Phạm Vi | Giá Trị Mặc Định |
bool | Boolean value | True or False | False |
byte | 8-bit unsigned integer | 0 to 255 | 0 |
char | 16-bit Unicode character | U +0000 to U +ffff | '\0' |
decimal | 128-bit precise decimal values with 28-29 significant digits | (-7.9 x 1028 to 7.9 x 1028) / 100 to 28 | 0.0M |
double | 64-bit double-precision floating point type | (+/-)5.0 x 10-324 to (+/-)1.7 x 10308 | 0.0D |
float | 32-bit single-precision floating point type | -3.4 x 1038 to + 3.4 x 1038 | 0.0F |
int | 32-bit signed integer type | -2,147,483,648 to 2,147,483,647 | 0 |
long | 64-bit signed integer type | -923,372,036,854,775,808 to 9,223,372,036,854,775,807 | 0L |
sbyte | 8-bit signed integer type | -128 to 127 | 0 |
short | 16-bit signed integer type | -32,768 to 32,767 | 0 |
uint | 32-bit unsigned integer type | 0 to 4,294,967,295 | 0 |
ulong | 64-bit unsigned integer type | 0 to 18,446,744,073,709,551,615 | 0 |
ushort | 16-bit unsigned integer type | 0 to 65,535 | 0 |
Tất cả các kiểu dữ liệu số đều được gọi là Value Type, ngoài ra còn có Char, Date, Boolean, Struct, Enum . . .
B. Reference Types
Một kiểu tham chiếu chứa một con trỏ đến một vị trí bộ nhớ chứa dữ liệu.Reference Types | Notes |
Class | Các đối tượng từ một class là một kiểu tham chiếu |
Interface | Nó có thể là cả hai kiểu, một lời gọi virtual cho reference type hoặc lời gọi static cho value type. |
Delegate | Một loại delegate thường dùng để đại diện cho một phương pháp nào đó |
Array | Mảng là kiểu tham chiếu dù các giá trị trong mảng là kiểu giá trị |
String | Một chuỗi cũng là dạng tham chiếu vì nó bắt nguồn từ classes |
Đối với kiểu dữ liệu tham chiếu, nó sẽ sử dụng cả hai bộ nhớ Stack và Heap. Chúng ta sẽ tìm hiểu hai loại bộ nhớ này ở phần sau.
Update: 27/11/2013
Update: 02/12/2013
Update: 26/02/2014
Update: 12/05/2014 details
C# Programming: Value Types and Reference Types
Related Tags :WritingObsolete
No comments:
Post a Comment
Commets Download Photoshop Actions, Lightroom Presets, PSD Template, Mockups, Stocks, Vectors, Fonts. Download free