C# Academy · บทเรียน

คลาส Convert และการแยกวิเคราะห์

แยกวิเคราะห์และแปลงค่าด้วย Convert และ TryParse

บทเรียน 4 จาก 413 ขั้นตอน

คลาส Convert และการแยกวิเคราะห์ เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

การแปลงสตริงเป็นตัวเลข

ข้อมูลที่ผู้ใช้ป้อนเข้ามาจะอยู่ในรูปข้อความ หากต้องการนำไปคำนวณ คุณต้องแปลงสตริงเป็นตัวเลข C# มี Convert, Parse และ TryParse ให้ใช้

using System;

class Program
{
    static void Main()
    {
        string input = "42";
        int number = int.Parse(input);
        Console.WriteLine(number + 8);
    }
}

int.Parse

int.Parse เปลี่ยนสตริงตัวเลขให้เป็น int และจะทำให้เกิด FormatException หากข้อความไม่ใช่ตัวเลขที่ถูกต้อง

using System;

class Program
{
    static void Main()
    {
        try
        {
            int n = int.Parse("abc");
            Console.WriteLine(n);
        }
        catch (FormatException)
        {
            Console.WriteLine("Not a valid number");
        }
    }
}

int.TryParse

int.TryParse ช่วยหลีกเลี่ยงข้อผิดพลาด โดยคืนค่า true เมื่อสำเร็จและใส่ผลลัพธ์ไว้ในพารามิเตอร์ out หรือคืนค่า false เมื่อไม่สำเร็จ

using System;

class Program
{
    static void Main()
    {
        if (int.TryParse("123", out int n))
            Console.WriteLine("Parsed: " + n);
        else
            Console.WriteLine("Failed");
    }
}

TryParse สำหรับการรับข้อมูลอย่างปลอดภัย

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

using System;

class Program
{
    static void Main()
    {
        string[] inputs = { "10", "oops", "30" };
        int total = 0;
        foreach (var s in inputs)
        {
            if (int.TryParse(s, out int v))
                total += v;
        }
        Console.WriteLine("Total of valid: " + total);
    }
}

คลาสการแปลงค่า

คลาส Convert สามารถแปลงระหว่างชนิดพื้นฐานได้หลายชนิด เช่น Convert.ToInt32, Convert.ToDouble, Convert.ToBoolean และอื่น ๆ

using System;

class Program
{
    static void Main()
    {
        int i = Convert.ToInt32("256");
        double d = Convert.ToDouble("3.14");
        bool b = Convert.ToBoolean("true");
        Console.WriteLine(i + ", " + d + ", " + b);
    }
}

Convert จัดการค่า null

ต่างจาก int.Parse ตรงที่ Convert.ToInt32(null) จะคืนค่า 0 แทนที่จะทำให้เกิดข้อผิดพลาด ซึ่งอาจสะดวกหรือทำให้เกิดความประหลาดใจได้

using System;

class Program
{
    static void Main()
    {
        string s = null;
        int n = Convert.ToInt32(s);   // returns 0
        Console.WriteLine("Result: " + n);
    }
}

Convert ระหว่างชนิดตัวเลข

Convert ยังสามารถเปลี่ยนชนิดตัวเลขหนึ่งเป็นอีกชนิดหนึ่ง และจะปัดเศษ (ไม่ใช่ตัดทอน) เมื่อต้องแปลงค่าทศนิยมเป็นจำนวนเต็ม

using System;

class Program
{
    static void Main()
    {
        double d = 7.6;
        int cast = (int)d;             // truncates -> 7
        int converted = Convert.ToInt32(d);   // rounds -> 8
        Console.WriteLine("cast=" + cast + ", convert=" + converted);
    }
}

การแยกวิเคราะห์ชนิดอื่น

ชนิดที่มีมาให้ส่วนใหญ่มี Parse/TryParse ของตนเอง เช่น double.TryParse, bool.TryParse, DateTime.TryParse เป็นต้น

using System;

class Program
{
    static void Main()
    {
        bool okD = double.TryParse("2.5", out double d);
        bool okB = bool.TryParse("True", out bool flag);
        Console.WriteLine(okD + ":" + d + ", " + okB + ":" + flag);
    }
}

ToString สำหรับการแปลงย้อนกลับ

หากต้องการเปลี่ยนตัวเลขกลับเป็นข้อความ ให้เรียกใช้ ToString() และอาจส่งสตริงรูปแบบให้ด้วย

using System;

class Program
{
    static void Main()
    {
        int n = 255;
        double price = 12.5;
        Console.WriteLine(n.ToString());
        Console.WriteLine(price.ToString("C"));   // currency format
    }
}

การเลือกเครื่องมือที่เหมาะสม

ใช้ TryParse กับข้อมูลที่ผู้ใช้ป้อนซึ่งไม่อาจเชื่อถือได้ ใช้ Parse เมื่อรับประกันว่าข้อมูลถูกต้อง และใช้ Convert เมื่อต้องจัดการค่าว่างหรือแปลงระหว่างหลายชนิด

using System;

class Program
{
    static void Main()
    {
        string userInput = "55x";
        int value = int.TryParse(userInput, out int v) ? v : -1;
        Console.WriteLine(value == -1 ? "Invalid input" : "Got " + value);
    }
}

สรุปรวม

ลำดับการรับข้อมูลที่ทนทานควรตรวจสอบด้วย TryParse กำหนดค่าเริ่มต้นเมื่อไม่สำเร็จ แล้วจึงคำนวณอย่างปลอดภัย

using System;

class Program
{
    static int ReadAge(string input)
    {
        if (int.TryParse(input, out int age) && age >= 0)
            return age;
        return 0;   // safe default
    }

    static void Main()
    {
        Console.WriteLine("Age: " + ReadAge("28"));
        Console.WriteLine("Age: " + ReadAge("bad"));
    }
}

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจของคุณเกี่ยวกับการแยกวิเคราะห์และการแปลงค่า

ทบทวน

แปลงข้อความเป็นตัวเลขด้วย int.Parse (ทำให้เกิดข้อผิดพลาดเมื่อข้อมูลไม่ถูกต้อง), int.TryParse (ปลอดภัย คืนค่า bool พร้อมค่าใน out) หรือคลาส Convert (จัดการค่าว่าง ปัดเศษค่าทศนิยม และแปลงได้หลายชนิด) ควรใช้ TryParse กับข้อมูลที่ไม่อาจเชื่อถือได้ และใช้ ToString() สำหรับการแปลงย้อนกลับ

using System;

class Program
{
    static void Main()
    {
        if (int.TryParse("99", out int n))
            Console.WriteLine("Value: " + n);
        Console.WriteLine("Convert: " + Convert.ToInt32("7"));
    }
}
เริ่มต้นได้ฟรี

เรียนรู้ C# ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
93
บทเรียน
346

คำถามที่พบบ่อย

บทเรียน “คลาส Convert และการแยกวิเคราะห์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “คลาส Convert และการแยกวิเคราะห์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “คลาส Convert และการแยกวิเคราะห์”

แยกวิเคราะห์และแปลงค่าด้วย Convert และ TryParse คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “คลาส Convert และการแยกวิเคราะห์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม

ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ชนิดค่าเทียบกับชนิดอ้างอิง
  2. การบรรจุและการนำออกจากกล่อง
  3. การแปลงโดยนัยและโดยชัดแจ้ง
  4. คลาส Convert และการแยกวิเคราะห์
← กลับไปที่ C# Academy