Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ความแตกต่างระหว่างการแปลงชนิดข้อมูลโดยนัย (Implicit) และโดยแสดง (Explicit) ใน C#

การแปลงชนิดข้อมูลโดยนัย (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();
        }
    }
}

สรุปความแตกต่าง

ลักษณะImplicitExplicit
ต้องระบุตัวดำเนินการ castไม่ใช่
ความปลอดภัยข้อมูลปลอดภัย (ไม่สูญเสียข้อมูล)อาจสูญเสียข้อมูลได้
ตัวอย่างint → longdouble → int