ประเภทข้อมูลใน C#: Double, จำนวนเต็ม, ลอย, ถ่าน
⚡ สรุปอย่างชาญฉลาด
ชนิดข้อมูลใน C# กำหนดชนิดของค่าที่ตัวแปรสามารถเก็บได้ ตั้งแต่จำนวนเต็มและจำนวนทศนิยม ไปจนถึงค่าบูลีนและสตริง และยังกำหนดว่าตัวแปรแต่ละตัวจะใช้หน่วยความจำเท่าใดในระหว่างการทำงานของโปรแกรม
ประเภทข้อมูลใน C# คืออะไร?
ภาษา C# มาพร้อมกับชุดข้อมูลพื้นฐาน ชนิดข้อมูลเหล่านี้ใช้เพื่อสร้างค่าที่ใช้ภายในแอปพลิเคชัน มาสำรวจประเภทข้อมูลพื้นฐานที่มีอยู่ใน C# กันดีกว่า สำหรับแต่ละตัวอย่าง เราจะแก้ไขเฉพาะฟังก์ชันหลักในไฟล์ Program.cs ของเรา
1) จำนวนเต็ม
ประเภทข้อมูลจำนวนเต็มใช้เพื่อทำงานกับตัวเลข ในกรณีนี้ ตัวเลขจะเป็นจำนวนเต็ม เช่น 10, 20 หรือ 30 ใน C# ประเภทข้อมูลจะแสดงด้วย คีย์เวิร์ด Int32- ด้านล่างนี้เป็นตัวอย่างวิธีการใช้ประเภทข้อมูลนี้ ในตัวอย่างของเรา เราจะกำหนดตัวแปร Int32 ที่เรียกว่า num จากนั้นเราจะกำหนดค่าจำนวนเต็มให้กับตัวแปรแล้วแสดงค่านั้นตามนั้น
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Int32 num=30; Console.Write(num); Console.ReadKey(); } } }
Code คำอธิบาย:-
- ชนิดข้อมูล Int32 ได้รับการระบุเพื่อประกาศตัวแปรจำนวนเต็มที่เรียกว่า num จากนั้นตัวแปรจะถูกกำหนดค่าเป็น 30
- ในที่สุดฟังก์ชัน console.write จะใช้เพื่อแสดงหมายเลขบนคอนโซล
หากป้อนโค้ดด้านบนอย่างถูกต้องและโปรแกรมทำงานสำเร็จ จะแสดงผลลัพธ์ดังต่อไปนี้
Output:
จากผลลัพธ์ คุณสามารถเห็นได้ชัดเจนว่าตัวแปร Integer ที่เรียกว่า num ได้ถูกแสดงในคอนโซล
2) Double
ประเภทข้อมูลแบบ double ใช้สำหรับทำงานกับทศนิยม ในกรณีนี้ ตัวเลขจะเป็นจำนวนเต็ม เช่น 10.11, 20.22 หรือ 30.33 ใน C# ประเภทข้อมูลจะถูกระบุด้วยคีย์เวิร์ด “Double- ด้านล่างนี้เป็นตัวอย่างของประเภทข้อมูลนี้
ในตัวอย่างของเรา เราจะกำหนดตัวแปร double ที่เรียกว่า num จากนั้นเราจะกำหนด Double ให้กับตัวแปรแล้วจึงแสดงผลตามนั้น
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { double num=30.33; Console.Write(num); Console.ReadKey(); } } }
Code คำอธิบาย:-
- ชนิดข้อมูลแบบ double ถูกกำหนดให้ประกาศชนิด double ตัวแปร เรียกว่าหมายเลข จากนั้นตัวแปรจะถูกกำหนดค่าเป็น 30.33
- ในที่สุดฟังก์ชัน console.write จะใช้เพื่อแสดงหมายเลขบนคอนโซล
หากป้อนโค้ดด้านบนอย่างถูกต้องและโปรแกรมทำงานสำเร็จ จะแสดงผลลัพธ์ดังต่อไปนี้
Output:
จากผลลัพธ์ คุณสามารถเห็นได้ชัดเจนว่าตัวแปร double ที่เรียกว่า num ถูกแสดงในคอนโซล
3) บูลีน
ชนิดข้อมูลบูลีนใช้เพื่อทำงานกับค่าบูลีนของ จริงและเท็จ- ใน C# ประเภทข้อมูลจะแสดงด้วยคีย์เวิร์ด Boolean ด้านล่างนี้เป็นตัวอย่างของประเภทข้อมูลนี้ที่สามารถใช้ได้
ในตัวอย่างของเรา เราจะกำหนดตัวแปรบูลีนที่เรียกว่า 'สถานะ' จากนั้นเราจะกำหนดค่าบูลีนให้กับตัวแปรแล้วแสดงค่าดังกล่าวตามนั้น
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Boolean status=true; Console.Write(status); Console.ReadKey(); } } }
Code คำอธิบาย:-
- มีการระบุประเภทข้อมูลบูลีนเพื่อประกาศตัวแปรบูลีนที่เรียกว่า 'สถานะ' จากนั้นตัวแปรจะถูกกำหนดค่าเป็น true/false
- ในที่สุดฟังก์ชัน console.write จะใช้เพื่อแสดงค่าบูลีนไปยังคอนโซล
หากป้อนโค้ดด้านบนถูกต้องแล้วและโปรแกรมทำงานสำเร็จจะแสดงผลลัพธ์
Output:
จากผลลัพธ์ คุณสามารถเห็นได้ชัดเจนว่าตัวแปรบูลีนซึ่งเท่ากับเป็นจริงถูกแสดงในคอนโซล
4) เชือก
ชนิดข้อมูล String ใช้เพื่อทำงานกับค่า String ใน C# ประเภทข้อมูลจะแสดงด้วยคำหลัก 'String' ด้านล่างนี้เป็นตัวอย่างของประเภทข้อมูลนี้
ในตัวอย่างของเรา เราจะกำหนดตัวแปรสตริงที่เรียกว่า 'ข้อความ' จากนั้นเราจะกำหนดค่า String ให้กับตัวแปรแล้วแสดงค่าดังกล่าวตามนั้น
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class program { static void Main(string[] args) { String message="Hello"; Console.Write(message); Console.ReadKey(); } } }
Code คำอธิบาย:-
- มีการระบุชนิดข้อมูล String เพื่อประกาศตัวแปรสตริงที่เรียกว่าข้อความ จากนั้นตัวแปรจะถูกกำหนดค่าเป็น “Hello”
- สุดท้ายนี้ ฟังก์ชัน console.write ถูกใช้เพื่อแสดงค่าสตริงไปยังคอนโซล
หากป้อนโค้ดด้านบนถูกต้องแล้วและโปรแกรมทำงานสำเร็จจะแสดงผลลัพธ์
Output:
จากผลลัพธ์ คุณสามารถเห็นได้ชัดเจนว่าตัวแปร String ที่เรียกว่า message ถูกแสดงในคอนโซล
รายการประเภทข้อมูลทั้งหมดของ C#
ตัวอย่างทั้งสี่ข้างต้นครอบคลุมประเภทข้อมูลที่ใช้กันทั่วไปมากที่สุด แต่ C# มีชุดประเภทข้อมูลค่าในตัวครบถ้วน แต่ละประเภทจะสงวนหน่วยความจำไว้จำนวนหนึ่งและยอมรับช่วงค่าที่เฉพาะเจาะจง ดังนั้นการเลือกประเภทที่เล็กที่สุดที่เหมาะสมกับข้อมูลของคุณอย่างปลอดภัยจะช่วยให้โปรแกรมทำงานได้อย่างมีประสิทธิภาพ
| ประเภทข้อมูล | ขนาด | พิสัย / Descriptไอออน |
|---|---|---|
| ไบต์ | 1 ไบต์ | เพื่อ 0 255 |
| Short | ไบต์ 2 | -32,768 ไป 32,767 |
| อินท์ (อินท์32) | ไบต์ 4 | -2,147,483,648 ไป 2,147,483,647 |
| ยาว | ไบต์ 8 | จำนวนเต็มขนาดใหญ่มาก (±9.2 ควินทิลเลียน) |
| ลอย | ไบต์ 4 | เลขฐานสิบที่มีความแม่นยำประมาณ 6-7 หลัก |
| สอง | ไบต์ 8 | เลขฐานสิบที่มีความแม่นยำประมาณ 15-16 หลัก |
| ทศนิยม | ไบต์ 16 | ตัวเลขทศนิยมความแม่นยำสูง (28-29 หลัก) สำหรับเงิน |
| ถัง | ไบต์ 2 | อักขระยูนิโค้ดตัวเดียว |
| บูล | 1 ไบต์ | จริงหรือเท็จ |
นอกจากชนิดข้อมูลแบบค่าแล้ว ชนิดข้อมูลสตริงยังเป็นชนิดข้อมูลอ้างอิงที่ใช้กันอย่างแพร่หลายที่สุด และสามารถจัดเก็บลำดับของอักขระที่มีความยาวใดๆ ก็ได้ การเลือกชนิดข้อมูลที่เหมาะสมจะช่วยป้องกันข้อผิดพลาดจากการล้นค่าและการใช้หน่วยความจำที่ไม่จำเป็น
ประเภทค่า (Value Types) กับประเภทอ้างอิง (Reference Types) ใน C#
ประเภทข้อมูลทุกประเภทใน C# แบ่งออกเป็นสองกลุ่มหลัก ได้แก่ ประเภทค่า (Value types) และประเภทอ้างอิง (Reference types) การแบ่งแยกนี้ควบคุมวิธีการจัดเก็บข้อมูลใน C# และลักษณะการทำงานของตัวแปรเมื่อคัดลอกหรือส่งผ่านไปยังเมธอด
- ประเภทของค่า: ประเภทข้อมูลเหล่านี้เก็บข้อมูลจริงโดยตรง โดยปกติจะเก็บไว้ในสแต็ก เช่น int, double, bool, char อีนุมและ struct เป็นชนิดข้อมูลแบบค่า (value types) การกำหนดค่าให้กับตัวแปรหนึ่งจะคัดลอกค่าของตัวแปรนั้น ดังนั้นตัวแปรทั้งสองจึงยังคงเป็นอิสระต่อกัน
- ประเภทการอ้างอิง: ตัวแปรเหล่านี้เก็บค่าอ้างอิง (ที่อยู่หน่วยความจำ) ที่ชี้ไปยังข้อมูลบนฮีป สตริง อ็อบเจ็กต์ อาร์เรย์ และอินสแตนซ์ของคลาสเป็นประเภทอ้างอิง การคัดลอกตัวแปรอ้างอิงจะคัดลอกเฉพาะที่อยู่เท่านั้น ดังนั้นตัวแปรทั้งสองจึงใช้ร่วมกันอ็อบเจ็กต์เดียวกัน
ตัวแปรประเภทค่า (value type) จะไม่มีทางเป็นค่าว่าง (null) ได้ เพราะมันจะเก็บค่าไว้เสมอ ในขณะที่ตัวแปรประเภทอ้างอิง (reference type) ที่ไม่ได้กำหนดค่าเริ่มต้นจะมีค่าเริ่มต้นเป็นค่าว่าง การเข้าใจความแตกต่างนี้จะช่วยให้คุณคาดการณ์ได้ว่าการเปลี่ยนแปลงของข้อมูลจะส่งผลต่อโปรแกรมอย่างไร
การแปลงชนิดข้อมูลใน C#
ภาษา C# มักต้องการแปลงค่าจากชนิดข้อมูลหนึ่งไปเป็นอีกชนิดข้อมูลหนึ่ง เช่น การแปลงข้อมูลที่ผู้ใช้ป้อน ซึ่งมักเป็นข้อความ ให้เป็นตัวเลข กระบวนการนี้เรียกว่าการแปลงชนิดข้อมูล และเกิดขึ้นได้สามวิธีหลักๆ
- การแปลงโดยปริยาย: คอมไพเลอร์จะแปลงค่าโดยอัตโนมัติเมื่อไม่มีความเสี่ยงต่อการสูญเสียข้อมูล เช่น การกำหนดค่าจำนวนเต็มให้กับจำนวนทศนิยม ไม่จำเป็นต้องใช้ไวยากรณ์พิเศษใดๆ
- การแปลงแบบชัดเจน (casting): คุณใส่ประเภทเป้าหมายไว้ในวงเล็บ ตัวอย่างเช่น (int)myDoubleการแปลงชนิดข้อมูลอาจทำให้ข้อมูลสูญหายได้ เช่น การแปลงค่า double เป็น int จะทำให้ส่วนทศนิยมหายไป ดังนั้นคุณจึงยอมรับความเสี่ยงนี้โดยสมัครใจ
- เมธอดตัวช่วย: คลาส Convert (Convert.ToInt32) และเมธอด Parse ของแต่ละประเภท (int.Parse) จะแปลงสตริงเป็นตัวเลข ในขณะที่ ToString จะแปลงค่ากลับเป็นข้อความที่อ่านได้
การเลือกการแปลงที่ถูกต้องจะช่วยให้ข้อมูลมีความแม่นยำและป้องกันข้อผิดพลาดขณะทำงานเมื่อชนิดข้อมูลในแต่ละด้านของการกำหนดค่าไม่ตรงกัน









