1. Built-in types
2. User-defined types
3. Enumerations (Sealed Value Types)
Built-in types
มี built-in types กว่า 300 ชนิด แต่ในที่นี้ผมจะขอแนะนำเฉพาะที่น่าสนใจ เช่น
ฺ
ตัวเลขจำนวนเต็ม
SByte (System.SByte/sbyte) -128 ถึง 127
Byte (System.Byte/byte) 0 ถึง 255
ขนาด 1 byte (8 bits)
Byte (System.Byte/byte) 0 ถึง 255
ขนาด 1 byte (8 bits)
Short (System.Int16/short) -32,768 ถึง 32,767
UShort (System.UInt16/ushort) 0 ถึง 65,535
ขนาด 2 byte (16 bits)
UShort (System.UInt16/ushort) 0 ถึง 65,535
ขนาด 2 byte (16 bits)
Integer (System.Int32/int) -2,147,483,648 ถึง 2,147,483,647
UInteger (System.Int32/uint) 0 ถึง 4,294,967,295
ขนาด 4 byte (32 bits)
UInteger (System.Int32/uint) 0 ถึง 4,294,967,295
ขนาด 4 byte (32 bits)
Long (System.Int64/long) -9,223,372,036,854,775,808 ถึง 9,223,372,036,854,775,807
ULong (System.UInt64/ulong) 0 ถึง 18,446,744,073,709,551,615
ขนาด 8 byte (64 bits)
ULong (System.UInt64/ulong) 0 ถึง 18,446,744,073,709,551,615
ขนาด 8 byte (64 bits)
ตัวเลขทศนิยม
Single (System.Single/float)
-3.402823E38 ถึง -1.401298E-45 และ 1.401298E-45 ถึง 3.402823E38 (ความถูกต้องของทศนิยม 7 หลัก)
ขนาด 4 byte (32 bits)
-3.402823E38 ถึง -1.401298E-45 และ 1.401298E-45 ถึง 3.402823E38 (ความถูกต้องของทศนิยม 7 หลัก)
ขนาด 4 byte (32 bits)
Double (System.Double/double)
-1.79769313486231E308 ถึง -4.94065645841247E-324 และ 4.94065645841247E-324 ถึง 1.79769313486232E308 (ความถูกต้องของทศนิยม 15-16 หลัก)
ขนาด 8 byte (64 bits)
-1.79769313486231E308 ถึง -4.94065645841247E-324 และ 4.94065645841247E-324 ถึง 1.79769313486232E308 (ความถูกต้องของทศนิยม 15-16 หลัก)
ขนาด 8 byte (64 bits)
Decimal (System.Decimal/decimal)
กรณีจำนวนเต็ม +/- 79,228,162,514,264,337,593,543,950,335
และกรณีทศนิยม +/-7.9228162514264337593543950335 (ความถูกต้องของทศนิยม 28 หลัก)
ขนาด 16 byte (128 bits)
กรณีจำนวนเต็ม +/- 79,228,162,514,264,337,593,543,950,335
และกรณีทศนิยม +/-7.9228162514264337593543950335 (ความถูกต้องของทศนิยม 28 หลัก)
ขนาด 16 byte (128 bits)
อื่นๆ
Char (System.Char/char)
ข้อมูลตัวอักษร 1 ตัว เป็น Unicode
ขนาด 2 bytes (16 bits)
ข้อมูลตัวอักษร 1 ตัว เป็น Unicode
ขนาด 2 bytes (16 bits)
ฺBoolean (System.Boolean/bool)
ข้อมูลทางตรรกะ(logic) มีค่าเป็น True หรือ False
ขนาด 4 bytes (32 bits)
ข้อมูลทางตรรกะ(logic) มีค่าเป็น True หรือ False
ขนาด 4 bytes (32 bits)
Date (System.DateTime/date) ตั้งแต่ 1/1/0001 12:00:00 AM ถึง 12/31/9999 11:59:59 PM
ข้อมูลวันเวลา
ขนาด 8 bytes (64 bits)
ข้อมูลวันเวลา
ขนาด 8 bytes (64 bits)
System.IntPtr
ข้อมูล Pointer ที่ชี้ไปยัง address ใน memory
ขนาดขึ้นกับ platfrom ที่ framework อยู่
ข้อมูล Pointer ที่ชี้ไปยัง address ใน memory
ขนาดขึ้นกับ platfrom ที่ framework อยู่
ทิปเทคนิค :
** เมื่อมีการใช้ชนิดข้อมูลที่เป็นจำนวนเต็ม แนะนำให้ใช้ Integer หรือ UInteger เพราะ CLR ถูกปรับมาให้ทำงานกับตัวเลขจำนวนเต็ม ขนาด 32-bits ได้มีประสิทธิภาพมากกว่าชนิดอื่น
** Value type จะมี method เช่น ToString มาให้ เพราะทุกๆ type ทั้ง value types และ reference types ก็ล้วนแล้วแต่สืบทอดมาจาก System.Object นั้นเอง
แหล่งข้อมูล :
Reference and Value Types by William Ryan
Programming in .NET: The Type System - Addison-Wesley Professional
Primitive, Reference and Value Types by Nadeem Afanah - CodeProject