تمرين - تنفيذ الإضافة مع تحويل البيانات الضمني

مكتمل

في كثير من الأحيان، ستحتاج إلى إجراء عمليات رياضية على البيانات الرقمية. ستبدأ بإضافة في هذه الوحدة، وتتوسع إلى عمليات أخرى في الوحدة التالية لأن هناك درسا مهما للتعرف على كيفية تحليل المحول البرمجي C# للتعليمات البرمجية الخاصة بك وتفسيرها.

إضافة قيمتين رقميتين

لإضافة رقمين معا، ستستخدم عامل تشغيل الإضافة، وهو رمز +الجمع . نعم، يتم أيضا استخدام نفس رمز + الجمع الذي تستخدمه لسلسلة السلسلة للجمع. تسمى إعادة استخدام رمز واحد لأغراض متعددة أحيانًا "عامل تشغيل التحميل الزائد" ويحدث بشكل متكرر في C#‎.

في هذه الحالة، يفهم برنامج التحويل البرمجي C# ما تحاول القيام به. يقوم المحول البرمجي بتحليل التعليمات البرمجية الخاصة بك ويرى أن + (عامل التشغيل) محاط بقيمتين رقميتين (المعاملات). نظرا لأنواع البيانات للمتغيرات (كلاهما s int)، فإنه يكتشف أنك تنوي إضافة هاتين القيمتين.

  1. أدخل التعليمات البرمجية التالية في محرر .NET:

    int firstNumber = 12;
    int secondNumber = 7;
    Console.WriteLine(firstNumber + secondNumber);
    
  2. قم بتشغيل التعليمات البرمجية وسترى النتيجة التالية في وحدة تحكم الإخراج:

    19
    

خلط أنواع البيانات لفرض تحويلات النوع الضمني

ماذا يحدث إذا حاولت استخدام + الرمز مع القيمتين و stringint ؟

  1. تعديل التعليمات البرمجية التي كتبتها لمطابقة التعليمات البرمجية التالية:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + widgetsSold + " widgets.");
    
  2. قم بتشغيل التعليمات البرمجية وسترى النتيجة التالية في وحدة تحكم الإخراج:

    Bob sold 7 widgets.
    

في هذه الحالة، يفهم المحول البرمجي C# أنك تريد استخدام + الرمز لسلسلة معاملين. وهو يستنتج هذا لأن + الرمز محاط بمعاملات string أنواع البيانات و int . لذلك، فإنه يحاول ضمنيا تحويل int المتغير widgetsSold إلى string مؤقتا حتى يتمكن من تسلسله إلى بقية السلسلة. يحاول المحول البرمجي C# مساعدتك كلما أمكن ولكن بشكل مثالي، ستكون صريحًا حول نواياك.

محاولة حالة أكثر تقدما لإضافة أرقام وسلاسل متسلسلة

  1. تعديل التعليمات البرمجية التي كتبتها لمطابقة التعليمات البرمجية التالية:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + widgetsSold + 7 + " widgets.");
    
  2. قم بتشغيل التعليمات البرمجية وسترى النتيجة التالية في وحدة تحكم الإخراج:

    Bob sold 77 widgets.
    

بدلاً من إضافة متغير int المسمى widgetsSold إلى القيمة الحرفية int7، يتعامل المحول البرمجي مع كل شيء كسلسلة ويسلسلها معاً.

إضافة أقواس لتوضيح هدفك إلى المحول البرمجي

  1. تعديل التعليمات البرمجية التي كتبتها لمطابقة التعليمات البرمجية التالية:

    string firstName = "Bob";
    int widgetsSold = 7;
    Console.WriteLine(firstName + " sold " + (widgetsSold + 7) + " widgets.");
    
  2. قم بتشغيل التعليمات البرمجية وسترى النتيجة التالية في وحدة تحكم الإخراج:

    Bob sold 14 widgets.
    

يصبح رمز () الأقواس عامل تشغيل آخر محمل تحميلا زائدا. في هذه الحالة، تشكل أقواس الفتح والإغلاق ترتيب عامل تشغيل العمليات ، تماما كما قد تستخدم في صيغة رياضية. تشير إلى أنك تريد حل معظم الأقواس الداخلية أولا مما يؤدي إلى إضافة int القيم widgetsSold والقيمة 7. وبمجرد أن يتم الحل، فإنه سيتم ضمنيًا تحويل النتيجة إلى سلسلة بحيث يمكن أن تكون متصلة مع بقية الرسالة.

إشعار

وربما يجب تجنب تنفيذ كل من حساب وسلسلة في سطر واحد من التعليمات البرمجية. النقطة هنا هي لمساعدتك على فهم كيفية عرض عوامل التشغيل والمعاملات بالطريقة التي يقوم بها المحول البرمجي.

خلاصة

إليك ما تعلمته حتى الآن حول العمليات الرياضية في C#‎:

  • يمكنك إجراء عمليات جمع شبيهة بالرياضيات على الأرقام.
  • يستخدم كل من سلسلة السلسلة وإضافة رمز علامة الجمع + . يسمى هذا التحميل الزائد لعامل التشغيل، ويستنتج المحول البرمجي الاستخدام المناسب استنادا إلى أنواع البيانات التي يعمل عليها.
  • عندما يتمكن من ذلك، سيحول int المحول البرمجي C# ضمنيا إلى string إذا كان من الواضح أن المطور يحاول تسلسل تمثيل سلسلة رقم لأغراض العرض التقديمي.
  • استخدم الأقواس لتعريف ترتيب العمليات لإخبار المحول البرمجي صراحة بأنك تريد تنفيذ عمليات معينة قبل العمليات الأخرى.