การแปลงชนิดข้อมูลโดยนัย (Implicit Type Conversion)
การแปลงนี้เกิดขึ้นโดยอัตโนมัติจากคอมไพเลอร์อย่างปลอดภัย ไม่ทำให้สูญเสียข้อมูล
ตัวอย่าง: การแปลง int เป็น long โดยนัย
int val1 = 11000; int val2 = 35600; long sum; sum = val1 + val2; // คอมไพเลอร์แปลง int เป็น long เอง
ตัวอย่างโค้ด
using System;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
int val1 = 34567;
int val2 = 56743;
long sum;
sum = val1 + val2;
Console.WriteLine("Sum = " + sum);
Console.ReadLine();
}
}
}
การแปลงชนิดข้อมูลโดยแสดง (Explicit Type Conversion / Casting)
การแปลงที่โปรแกรมเมอร์ระบุชัดเจน โดยใช้ตัวดำเนินการ cast อาจทำให้เกิดการสูญเสียข้อมูลได้
ตัวอย่าง: การแปลง double เป็น int
using System;
namespace Program
{
class Demo
{
static void Main(string[] args)
{
double d = 1234.89;
int i;
// cast double to int
i = (int)d;
Console.WriteLine(i); // ผลลัพธ์: 1234 (ส่วนทศนิยมถูกตัดทิ้ง)
Console.ReadKey();
}
}
}
สรุปความแตกต่าง
| ลักษณะ | Implicit | Explicit |
|---|---|---|
| ต้องระบุตัวดำเนินการ cast | ไม่ | ใช่ |
| ความปลอดภัยข้อมูล | ปลอดภัย (ไม่สูญเสียข้อมูล) | อาจสูญเสียข้อมูลได้ |
| ตัวอย่าง | int → long | double → int |