คลาส Convert และการแยกวิเคราะห์
แยกวิเคราะห์และแปลงค่าด้วย Convert และ TryParse
คลาส 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ชนิดค่าเทียบกับชนิดอ้างอิง
- การบรรจุและการนำออกจากกล่อง
- การแปลงโดยนัยและโดยชัดแจ้ง
- คลาส Convert และการแยกวิเคราะห์