Type Casting or Type Conversion

กฤตนัย วันดี 650710212

Type Casting คือ

การแปลงประเภทข้อมูลเกิดขึ้นเมื่อเรานำค่าจากชนิดข้อมูลหนึ่งไปใส่ในอีกชนิดหนึ่ง หากชนิดข้อมูลสามารถเข้ากันได้ C# จะทำการแปลงอัตโนมัติให้ แต่หากไม่สามารถเข้ากันได้ จะต้องทำการแปลงโดยผู้ใช้เอง ซึ่งเรียกว่า Explicit Type Conversion เช่น การนำค่า int ไปใส่ในตัวแปรชนิด long

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

ตารางที่แสดงถึงการแปลงประเภทข้อมูลโดยอัตโนมัติ (Implicit Type Casting) ที่ C# รองรับนั้นอธิบายถึงชนิดข้อมูลที่สามารถแปลงกันได้โดยไม่ต้องใช้การแปลงแบบกำหนดเอง (Explicit) เช่น การแปลงจาก int ไปเป็น long หรือจาก float ไปเป็น double ชนิดข้อมูลเหล่านี้สามารถแปลงได้โดยไม่มีการสูญเสียข้อมูล เนื่องจากขนาดหรือความแม่นยำของชนิดข้อมูลเป้าหมายมีมากกว่าหรือเท่ากับข้อมูลต้นทาง
แปลงจากชนิตข้อมูล
แปลงเป็นชนิดข้อมูล

byte

short, int, long, float, double

short

int, long, float, double

int

long, float, double

long

float, double

float

double

ตัวอย่างโค้ด Implicit Type Conversion

ผลลัพท์

ตัวอย่างเมื่อประเภทข้อมูลไม่เข้ากัน

ผลลัพท์

ดังนั้น หากเราต้องการกำหนดค่าประเภทข้อมูลขนาดใหญ่ให้กับประเภทข้อมูลขนาดเล็ก เราจะดำเนินการแปลงประเภทโดยชัดเจน

  • สิ่งนี้มีประโยชน์สำหรับประเภทข้อมูลที่ไม่เข้ากันซึ่งไม่สามารถทำการแปลงอัตโนมัติได้

  • ในที่นี้ ชนิดข้อมูลเป้าหมาย (target-type) จะระบุชนิดที่ต้องการแปลงค่าที่กำหนดไปยังชนิดนั้น โดยการแปลงนี้สามารถใช้กับข้อมูลที่ไม่เข้ากันและไม่สามารถแปลงได้โดยอัตโนมัติ ซึ่งอาจทำให้เกิดการสูญเสียข้อมูลได้ในบางกรณี

  • การแปลงชนิดข้อมูลบางครั้งอาจส่งผลให้เกิดการสูญเสียข้อมูล (lossy conversion) ซึ่งหมายถึงเมื่อข้อมูลจากชนิดที่ใหญ่กว่าถูกแปลงไปยังชนิดที่เล็กกว่า จะมีข้อมูลบางส่วนหายไปหรือไม่สามารถเก็บรักษาทุกค่าได้ เช่น การแปลงจาก float หรือ double เป็น int อาจทำให้สูญเสียทศนิยมและมีผลต่อความถูกต้องของข้อมูล

ตัวอย่างโค้ด Explicit Type Casting

ผลลัพท์

วิธีการแปลงประเภท C#

C# ให้วิธีการแปลงประเภทในตัวดังต่อไปนี้

ลำดับที่
วิธีการและคำอธิบาย

1

ToBoolean

แปลงชนิดข้อมูลเป็นค่า Boolean หากทำได้

2

ToByte

แปลงชนิดข้อมูลเป็น byte

3

ToChar

แปลงชนิดข้อมูลเป็นตัวอักษร Unicode

4

ToDateTime

แปลงชนิดข้อมูล (ตัวเลขหรือสตริง) เป็น DateTime

5

ToDecimal

แปลงชนิดข้อมูลเป็น decimal

6

ToDouble

แปลงชนิดข้อมูลเป็น double

7

ToInt16

แปลงเป็น 16-bit integer

8

ToInt32

แปลงเป็น 32-bit integer

9

ToInt64

แปลงเป็น 64-bit integer

10

ToSbyte

แปลงเป็น signed byte

11

ToSingle

แปลงเป็นตัวเลขจุดทศนิยมเล็ก.

12

ToString

แปลงเป็นสตริง

13

ToType

แปลงเป็นชนิดข้อมูลที่กำหนด.

14

ToUInt16

แปลงเป็น unsigned 16-bit integer.

15

ToUInt32

แปลงเป็น unsigned 32-bit integer

16

ToUInt64

แปลงเป็น unsigned 64-bit integer

ตัวอย่างแปลงประเภทค่าต่างๆ ให้เป็นประเภทสตริง

ผลลัพท์

Presentation

435KB
Open

Video Clip

Reference

เนื้อหา Type Casting และโค้ด Implicit Type Conversion

เนื้อหา วิธีการแปลงประเภทของ C# และ โค้ด explicit type conversion กับ การแปลงค่าต่างๆให้เป็นสตริง

Last updated