ชนิดข้อมูลใน C# แบ่งเป็น 3 ประเภทหลัก: Value type, Reference type, และ Pointer type
Value Types (ชนิดค่า)
ตัวแปร value type สามารถกำหนดค่าได้โดยตรง มาจากคลาส System.ValueType
| Type | Represents | Range | Default |
|---|---|---|---|
| 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 | (-7.9×10²⁸ to 7.9×10²⁸)/10⁰ to 28 | 0.0M |
| double | 64-bit double-precision float | ±5.0×10⁻³²⁴ to ±1.7×10³⁰⁸ | 0.0D |
| float | 32-bit single-precision float | -3.4×10³⁸ to +3.4×10³⁸ | 0.0F |
| int | 32-bit signed integer | -2,147,483,648 to 2,147,483,647 | 0 |
| long | 64-bit signed integer | -9.22×10¹⁸ to 9.22×10¹⁸ | 0L |
| sbyte | 8-bit signed integer | -128 to 127 | 0 |
| short | 16-bit signed integer | -32,768 to 32,767 | 0 |
| uint | 32-bit unsigned integer | 0 to 4,294,967,295 | 0 |
| ulong | 64-bit unsigned integer | 0 to 1.84×10¹⁹ | 0 |
| ushort | 16-bit unsigned integer | 0 to 65,535 | 0 |
Reference Types (ชนิดอ้างอิง)
Reference types ไม่เก็บข้อมูลจริงในตัวแปร แต่เก็บการอ้างอิงไปยังตัวแปร
- Object Type - คลาสฐานสูงสุดสำหรับทุกชนิดข้อมูลใน CTS
- Dynamic Type - เก็บค่าประเภทใดก็ได้ ตรวจสอบชนิดที่ run-time
- String Type - กำหนดค่าสตริงได้ เป็น alias ของ
System.String