Data Types ในภาษา C# ในภาษา C# “Data Type” (ชนิดข้อมูล) หมายถึง รูปแบบของข้อมูลที่ตัวแปรสามารถเก็บได้ ซึ่งกำหนดทั้ง “ชนิดของค่าที่เก็บ” (เช่น ตัวเลข ข้อความ จริง/เท็จ) และ “ขนาดหน่วยความจำ” ที่ใช้ในการเก็บข้อมูลนั้น

ทุกตัวแปรใน C# จำเป็นต้องมีชนิดข้อมูลกำกับเสมอ เพื่อให้คอมไพเลอร์ตรวจสอบได้ว่าข้อมูลที่เก็บเข้ากันได้หรือไม่ และเพื่อให้โปรแกรมใช้หน่วยความจำได้อย่างมีประสิทธิภาพ

ประเภทของ Data Types ในภาษา C#

ชนิดข้อมูลใน C# สามารถแบ่งได้เป็น 4 กลุ่มหลัก ได้แก่

กลุ่มข้อมูลตัวอย่างชนิดข้อมูลคำอธิบาย
1. Value Typesint, float, double, bool, charเก็บค่าจริงในหน่วยความจำโดยตรง
2. Reference Typesstring, array, class, objectเก็บ “ที่อยู่” ของข้อมูลในหน่วยความจำ
3. Nullable Typesint?, double?เก็บค่าได้ทั้ง “ค่าจริง” และ null
4. Pointer Typesใช้ใน unsafe codeใช้เข้าถึงหน่วยความจำโดยตรง (มักใช้ในระบบระดับล่าง)

ตัวอย่างการใช้ชนิดข้อมูลพื้นฐานใน C#

C#
namespace MyConsoleApp
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int age = 25;                 // ชนิดจำนวนเต็ม
            double salary = 45800.75;     // ชนิดทศนิยม
            char grade = 'A';             // ชนิดอักขระ (ตัวอักษร)
            bool isActive = true;         // ชนิดตรรกะ (จริง/เท็จ)
            string name = "สมชาย";        // ชนิดข้อความ (string)

            Console.WriteLine($"ชื่อ: {name}");
            Console.WriteLine($"อายุ: {age}");
            Console.WriteLine($"เงินเดือน: {salary}");
            Console.WriteLine($"เกรด: {grade}");
            Console.WriteLine($"สถานะการทำงาน: {isActive}");
        }
    }
}
  • int age = 25; → เก็บจำนวนเต็ม (ไม่มีจุดทศนิยม)
  • double salary = 45800.75; → เก็บค่าทศนิยมสองตำแหน่ง
  • char grade = 'A'; → เก็บตัวอักษรหนึ่งตัว
  • bool isActive = true; → ใช้เก็บค่าตรรกะ “จริง” หรือ “เท็จ”
  • string name = "สมชาย"; → ใช้เก็บข้อความ
  • Console.WriteLine(...) → แสดงค่าตัวแปรทั้งหมด

Value Types vs Reference Types

คุณสมบัติValue TypeReference Type
การเก็บค่าเก็บค่าจริงในหน่วยความจำเก็บตำแหน่งอ้างอิง (reference)
ตัวอย่างint, double, bool, charstring, object, array, class
การเปลี่ยนค่าสร้างสำเนาใหม่เมื่อมีการคัดลอกการคัดลอกหมายถึงแชร์ข้อมูลเดียวกัน
ความเร็วเร็วกว่าเล็กน้อยช้ากว่าเล็กน้อยเพราะผ่านการอ้างอิง

การแปลงชนิดข้อมูล (Type Conversion)

C# อนุญาตให้แปลงชนิดข้อมูลได้ 2 แบบ คือ

Implicit Conversion (แปลงอัตโนมัติ)

ใช้เมื่อชนิดข้อมูลปลายทาง “กว้างกว่า” และไม่เสี่ยงต่อการสูญเสียข้อมูล เช่น

C#
int a = 10;
double b = a;  // แปลงอัตโนมัติจาก int → double

Explicit Conversion (ต้องระบุเอง)

ใช้เมื่อมีโอกาสสูญเสียข้อมูล ต้องระบุชนิดชัดเจนด้วย (type) เช่น

C#
double c = 9.75;
int d = (int)c;  // แปลง double → int (ผลลัพธ์คือ 9)

การใช้ชนิดข้อมูลร่วมกับ var

C# มีตัวช่วยคือคีย์เวิร์ด var ให้คอมไพเลอร์ “เดา” ชนิดข้อมูลจากค่าที่กำหนด เช่น

C#
var city = "Bangkok";   // คอมไพเลอร์อนุมานว่าเป็น string
var year = 2025;        // คอมไพเลอร์อนุมานว่าเป็น int

แต่ var ต้องมีการกำหนดค่าเริ่มต้น (initializer) เสมอ มิฉะนั้นคอมไพเลอร์จะไม่รู้ชนิดของข้อมูล

ตารางสรุปชนิดข้อมูลพื้นฐานใน C#

ชนิดข้อมูลคำอธิบายขนาดโดยประมาณค่าช่วงที่เก็บได้
byteจำนวนเต็มบวก1 byte0 ถึง 255
intจำนวนเต็ม4 bytes-2,147,483,648 ถึง 2,147,483,647
longจำนวนเต็มขนาดใหญ่8 bytes~±9.2×10¹⁸
floatทศนิยมความแม่นยำเดียว4 bytes~±3.4×10³⁸
doubleทศนิยมความแม่นยำคู่8 bytes~±1.7×10³⁰⁸
decimalทศนิยมความแม่นยำสูง (เชิงการเงิน)16 bytes~±7.9×10²⁸
charตัวอักษร 1 ตัว2 bytesUnicode
boolจริง/เท็จ1 bytetrue / false
stringข้อความขึ้นอยู่กับความยาว
objectชนิดพื้นฐานของทุกชนิดเก็บข้อมูลใดก็ได้

เคล็ดลับการเลือกใช้ Data Type ที่เหมาะสม

  1. ใช้ int สำหรับค่าจำนวนเต็มทั่วไป
  2. ใช้ double หรือ decimal สำหรับค่าทศนิยม (โดยเฉพาะงานคำนวณทางการเงินใช้ decimal)
  3. ใช้ string สำหรับข้อความ
  4. ใช้ bool สำหรับเงื่อนไข (true/false)
  5. ใช้ var เฉพาะกรณีที่โค้ดอ่านง่ายและคาดเดาได้ชัดเจน

Data Types คือหัวใจของภาษา C# เพราะช่วยให้โปรแกรมรู้จักข้อมูลของตัวเอง การเลือกชนิดข้อมูลให้ถูกต้องช่วยให้โค้ดทำงานได้อย่างถูกต้อง และยังช่วยเพิ่มประสิทธิภาพ ลดการใช้หน่วยความจำ และทำให้การแปลงค่าระหว่างชนิดต่าง ๆ เป็นไปอย่างปลอดภัย

แชร์เรื่องนี้