التحويل بين الأعداد
تعرّف على Casts وConvert methods
التحويل بين الأعداد درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.
لماذا نُحوِّل؟
لا يمكن دائمًا استخدام الأنواع الرقمية المختلفة معًا بحرية. فأحيانًا يجب تحويل قيمة من نوع إلى آخر.
توفر C# التحويلات الضمنية، والتحويلات النوعية الصريحة، وفئة Convert، وتحليل النصوص. ويغطي هذا الدرس كل نوع منها.
التحويل الضمني
عندما يستطيع النوع الهدف استيعاب كل قيمة ممكنة من النوع المصدر، تحوّل C# القيمة ضمنيًا دون أي صياغة إضافية.
يمكن احتواء قيمة من النوع int داخل double، لذا يكون هذا الإسناد تلقائيًا وآمنًا.
int whole = 7;
double real = whole;
Console.WriteLine(real);التحويل النوعي الصريح
قد يؤدي التحويل في الاتجاه المعاكس إلى فقدان البيانات، لذلك تتطلب C# تحويلًا نوعيًا صريحًا بكتابة النوع الهدف بين قوسين.
يقتطع تحويل double إلى int الجزء العشري باتجاه الصفر.
double price = 9.99;
int dollars = (int)price;
Console.WriteLine(dollars);قد يتسبب التحويل النوعي في تجاوز السعة
قد ينتج عن تحويل قيمة لا يتسع لها النوع الهدف ناتج غير صحيح بسبب تجاوز السعة.
يؤدي تحويل قيمة long كبيرة إلى int إلى الالتفاف ضمن نطاق النوع، لذا تحقق دائمًا من أن القيمة ملائمة.
long big = 3000000000;
int small = (int)big;
Console.WriteLine(small);فئة Convert
تحوّل الفئة System.Convert القيم بين الأنواع باستخدام دوال مثل Convert.ToInt32 وConvert.ToDouble.
وعلى خلاف التحويل النوعي، تقوم Convert.ToInt32 بتقريب قيمة double إلى أقرب عدد صحيح بدلًا من اقتطاعها.
double value = 9.99;
int rounded = Convert.ToInt32(value);
Console.WriteLine(rounded);تحليل الأعداد من النصوص
تصل مدخلات المستخدم والملفات على هيئة string. استخدم int.Parse أو double.Parse لتحويل النص إلى أعداد.
يجب أن يكون النص عددًا صالحًا، وإلا فسيتسبب التحليل في طرح استثناء.
string text = "42";
int number = int.Parse(text);
Console.WriteLine(number + 8);التحليل الآمن باستخدام TryParse
تحاول int.TryParse إجراء التحويل وتعيد true أو false بدلًا من طرح استثناء. وتُعاد القيمة التي جرى تحليلها من خلال وسيط out.
وهذه هي الطريقة الآمنة للتعامل مع المدخلات غير الموثوقة.
bool ok = int.TryParse("abc", out int result);
Console.WriteLine(ok);
Console.WriteLine(result);تحويل الأعداد إلى سلاسل نصية
يمتلك كل نوع رقمي دالة ToString لإنتاج نص. ويمكنك تمرير سلسلة تنسيق للتحكم في مظهره.
"C"العملة"F2"تنسيق ثابت مع منزلتين عشريتين"N0"تجميع الآلاف
double amount = 1234.5;
Console.WriteLine(amount.ToString("F2"));
Console.WriteLine(amount.ToString("N0"));التحويل من int إلى double للقسمة
من الأسباب الشائعة للتحويل تجنب القسمة الصحيحة. حوّل أحد المعاملين إلى double قبل القسمة للحفاظ على المنازل العشرية.
من دون هذا التحويل النوعي ستحصل على نتيجة صحيحة مقتطعة.
int scored = 7, total = 10;
double percent = (double)scored / total * 100;
Console.WriteLine(percent);التحويل النوعي مقابل Convert مقابل Parse
اختر الأداة المناسبة:
- Cast بين الأنواع الرقمية (يقتطع الجزء العشري)
- Convert بين أنواع عديدة (يقرّب ويتعامل مع القيم الخالية)
- Parse / TryParse لتحويل النص إلى أعداد
فضّل TryParse لأي مدخل لا تتحكم فيه.
مثال على التحويل
يقرأ هذا البرنامج المتكامل عددًا من نص، ويحوّله، ويجري عمليات حسابية عليه، ثم ينسّق الناتج على هيئة عملة.
string input = "19.95";
if (decimal.TryParse(input, out decimal price))
{
decimal withTax = price * 1.20m;
Console.WriteLine(withTax.ToString("F2"));
}اختبار سريع
اختر الطريقة الأكثر أمانًا لتحويل نص كتبه المستخدم إلى عدد.
مراجعة
تعلّمتم تحويل الأعداد: التحويلات الضمنية عندما تكون آمنة، والتحويلات النوعية الصريحة (التي تقتطع الجزء العشري وقد تتسبب في تجاوز السعة)، وفئة Convert (التي تقرّب القيم)، وتحليل النصوص باستخدام Parse وTryParse الأكثر أمانًا.
كما نسّقتم الأعداد مجددًا إلى سلاسل نصية باستخدام رموز تنسيق ToString. حوّل أحد المعاملين إلى double لتجنب القسمة الصحيحة.
الأسئلة الشائعة
هل درس «التحويل بين الأعداد» مجاني؟
نعم — نص درس «التحويل بين الأعداد» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.
ماذا ستتعلم في «التحويل بين الأعداد»؟
تعرّف على Casts وConvert methods تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟
لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «التحويل بين الأعداد»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟
نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الأنواع الرقمية
- الحساب وأولوية العوامل
- الفئة Math
- التحويل بين الأعداد