الفئة Convert والتحليل
حلّلوا وحوّلوا باستخدام Convert وTryParse
الفئة Convert والتحليل درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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 بين العديد من الأنواع الأساسية، مثل 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 أيضًا نوعًا عدديًا إلى نوع عددي آخر، وتقرّب القيم (ولا تقتطعها) عند تحويل القيم العشرية إلى أعداد صحيحة.
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 عند التعامل مع null أو التحويل بين أنواع متعددة.
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 (آمن، ويعيد قيمة منطقية وقيمة out)، أو الفئة Convert (تتعامل مع null، وتقرّب القيم العشرية، وتحول بين أنواع متعددة). فضّلوا 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"));
}
}الأسئلة الشائعة
هل درس «الفئة Convert والتحليل» مجاني؟
نعم — نص درس «الفئة Convert والتحليل» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.
ماذا ستتعلم في «الفئة Convert والتحليل»؟
حلّلوا وحوّلوا باستخدام Convert وTryParse تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟
لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «الفئة Convert والتحليل»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟
نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أنواع القيم مقابل أنواع المراجع
- التغليف وفك التغليف
- التحويلات الضمنية والصريحة
- الفئة Convert والتحليل