تمرين - استخدام المعلمات في الأساليب

مكتمل

عند إنشاء أساليب، ستحتاج غالبا إلى توفير بعض المعلومات للأسلوب لاستخدامه. تسمى المعلومات التي يستهلكها أسلوب معلمة. يمكنك توفير العديد من المعلمات حسب الحاجة لإنجاز مهمتها، أو لا شيء على الإطلاق.

غالبا ما يتم استخدام مصطلحي "معلمة" و"وسيطة" بالتبادل. ومع ذلك، تشير "المعلمة" إلى المتغير في توقيع الأسلوب. "الوسيطة" هي القيمة التي تم تمريرها عند استدعاء الأسلوب.

إضافة معلمات إلى الأساليب

تعمل المعلمات في أسلوب مشابهة للمتغيرات. يتم تعريف المعلمة عن طريق تحديد نوع البيانات متبوعا باسم المعلمة. يتم تعريف المعلمات في توقيع الأسلوب، ويتم توفير قيم المعلمات بواسطة مستدعي الأسلوب بدلا من تهيئتها داخل الأسلوب نفسه. ضع في اعتبارك التعليمات البرمجية التالية:

	CountTo(5);

	void CountTo(int max) 
	{
		for (int i = 0; i < max; i++)
		{
			Console.Write($"{i}, ");
		}
	}

في هذا المثال، يقبل الأسلوب CountTo معلمة عدد صحيح تسمى max. تتم الإشارة إلى المعلمة في التكرار for الحلقي للأسلوب. عند CountTo استدعاء، يتم توفير العدد الصحيح 5 كوسيطة.

في هذا التمرين، ستتعلم كيفية إنشاء معلمات الأسلوب الخاصة بك واستخدامها.

إعداد بيئة الترميز الخاصة بك

تتضمن هذه الوحدة أنشطة عملية ترشدك خلال عملية إنشاء التعليمات البرمجية التوضيحية وتشغيلها. يتم تشجيعك على إكمال هذه الأنشطة باستخدام Visual Studio Code كبيئة تطوير. سيساعدك استخدام Visual Studio Code لهذه الأنشطة على أن تصبح أكثر راحة في كتابة التعليمات البرمجية وتشغيلها في بيئة مطور يستخدمها المحترفون في جميع أنحاء العالم.

  1. فتح Visual Studio Code.

    يمكنك استخدام القائمة Windows (أو مورد مكافئ لنظام تشغيل آخر) لفتح Visual Studio Code.

  2. في قائمة Visual Studio Code File ، حدد Open Folder.

  3. في مربع الحوار فتح مجلد ، انتقل إلى مجلد سطح مكتب Windows.

    إذا كان لديك موقع مجلد مختلف حيث تحتفظ بمشاريع التعليمات البرمجية، يمكنك استخدام موقع المجلد هذا بدلا من ذلك. لهذا التدريب، الشيء المهم هو أن يكون لديك موقع يسهل تحديد موقعه وتذكره.

  4. في مربع الحوار فتح مجلد ، حدد تحديد مجلد.

    إذا رأيت مربع حوار أمان يسألك عما إذا كنت تثق بالمؤلفين، فحدد نعم.

  5. في قائمة Visual Studio Code Terminal ، حدد New Terminal.

    لاحظ أن موجه الأوامر في لوحة Terminal يعرض مسار المجلد للمجلد الحالي. على سبيل المثال:

    C:\Users\someuser\Desktop>
    

    إشعار

    إذا كنت تعمل على جهاز الكمبيوتر الخاص بك، بدلا من بيئة الاختبار المعزولة أو البيئة المستضافة، وأكملت وحدات Microsoft Learn الأخرى في سلسلة C# هذه، فربما تكون قد أنشأت بالفعل مجلد مشروع لعينات التعليمات البرمجية. إذا كان الأمر كذلك، يمكنك تخطي الخطوة التالية، والتي تستخدم لإنشاء تطبيق وحدة تحكم في مجلد TestProject.

  6. في موجه الأوامر Terminal، لإنشاء تطبيق وحدة تحكم جديد في مجلد محدد، اكتب dotnet new console -o ./CsharpProjects/TestProject ثم اضغط على Enter.

    يستخدم أمر .NET CLI هذا قالب برنامج .NET لإنشاء مشروع تطبيق وحدة تحكم C# جديد في موقع المجلد المحدد. ينشئ الأمر مجلدات CsharpProjects وTestProject نيابة عنك، ويستخدم TestProject كاسم للملف .csproj .

  7. في لوحة EXPLORER، قم بتوسيع المجلد CsharpProjects .

    يجب أن تشاهد مجلد TestProject وملفين، ملف برنامج C# المسمى Program.cs وملف مشروع C# يسمى TestProject.csproj.

  8. في لوحة EXPLORER، لعرض ملف التعليمات البرمجية في لوحة المحرر، حدد Program.cs.

  9. حذف أسطر التعليمات البرمجية الموجودة.

    ستستخدم مشروع وحدة تحكم C# هذا لإنشاء نماذج التعليمات البرمجية وبنائها وتشغيلها أثناء هذه الوحدة النمطية.

  10. أغلق لوحة Terminal.

إنشاء أسلوب باستخدام المعلمات

في هذه المهمة، ستقوم بإنشاء أسلوب يضبط الأوقات المجدولة إلى منطقة زمنية مختلفة في GMT. يجب أن يقبل الأسلوب قائمة بالوقت والمنطقة الزمنية الحالية والمنطقة الزمنية الجديدة. لنبدأ!

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

    int[] schedule = {800, 1200, 1600, 2000};
    
  2. لإنشاء أسلوب مع معلمات، أدخل التعليمات البرمجية التالية في سطر فارغ جديد:

    void DisplayAdjustedTimes(int[] times, int currentGMT, int newGMT) 
    {
    
    }
    

    لاحظ أن المعلمات معلنة مشابهة للطريقة التي تعلن بها عن المتغيرات، باستخدام نوع البيانات متبوعا باسم المتغير. يمكنك استخدام معلمات من أي نوع بيانات، مثل stringالصفائف boolintوالصفائف والمزيد! دائما ما يتم فصل معلمات متعددة في أسلوب فاصلة.

  3. أدخل التعليمات البرمجية التالية في DisplayAdjustedTimes الأسلوب :

    int diff = 0;
    if (Math.Abs(newGMT) > 12 || Math.Abs(currentGMT) > 12)
    {
        Console.WriteLine("Invalid GMT");
    }
    

    لاحظ كيف لا يتعين عليك الإعلان عن المتغيرات newGMT وبما currentGMT أنها معلنة بالفعل في توقيع الأسلوب. كما أنك لا تقوم بتهيئة المتغيرات لأن الأسلوب يفترض أن المتصل يوفر هذه الوسيطات بقيم معينة.

    في هذه الخطوة، يمكنك إنشاء int diff لتخزين الفرق الزمني ثم التحقق لمعرفة أن قيم GMT المتوفرة بين -12 و12. يمنحك استخدام Math.Abs القيمة المطلقة لرقم، لذا فإن قيم GMT غير صالحة إذا كانت أكبر من 12.

  4. لحساب الفرق الزمني، قم بتحديث DisplayAdjustedTimes الأسلوب كما يلي:

    int diff = 0;
    if (Math.Abs(newGMT) > 12 || Math.Abs(currentGMT) > 12)
    {
        Console.WriteLine("Invalid GMT");
    }
    else if (newGMT <= 0 && currentGMT <= 0 || newGMT >= 0 && currentGMT >= 0) 
    {
        diff = 100 * (Math.Abs(newGMT) - Math.Abs(currentGMT));
    } 
    else 
    {
        diff = 100 * (Math.Abs(newGMT) + Math.Abs(currentGMT));
    }
    

    في هذه التعليمة البرمجية، يمكنك التحقق لمعرفة ما إذا كنت بحاجة إلى إضافة أو طرح القيم المطلقة لمناطق توقيت GMT للحصول على الفرق بالساعات. إذا كانت قيم GMT تشترك في نفس العلامة (سواء كانت موجبة أو سالبة)، فسيكون الفرق في الساعات مساويا للفرق بين الرقمين. إذا كانت قيم GMT لها علامات عكسية، فإن الفرق يساوي مجموع الرقمين. نظرا لأن الساعات ممثلة بالمئات، فإنك تضرب النتيجة في 100.

  5. لعرض النتائج، أدخل التعليمات البرمجية التالية في نهاية DisplayAdjustedTimes الأسلوب:

    for (int i = 0; i < times.Length; i++) 
    {
        int newTime = (times[i] + diff) % 2400;
        Console.WriteLine($"{times[i]} -> {newTime}");
    }
    
  6. لاستدعاء الأسلوب الخاص بك، أدخل التعليمات البرمجية int[] schedule التالية بعد إعلان المتغير:

    DisplayAdjustedTimes(schedule, 6, -6);
    

    لاحظ أنه يمكن توفير كل من المتغيرات والأحرف الحرفية كوسيطات لأسلوب. باستخدام معلمات الإدخال، لا يقتصر الأسلوب على استخدام قيم المتغيرات العمومية.

التحقق من عملك

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

  1. احفظ عملك باستخدام Ctrl + S أو باستخدام قائمة Visual Studio Code File.

  2. إذا لزم الأمر، افتح لوحة المحطة الطرفية المتكاملة في Visual Studio Code.

    في لوحة EXPLORER، لفتح Terminal في موقع مجلد TestProject، انقر بزر الماوس الأيمن فوق TestProject، ثم حدد Open in Integrated Terminal.

  3. في موجه الأوامر Terminal، أدخل dotnet run

  4. تحقق من أن التعليمات البرمجية الخاصة بك تنتج الإخراج التالي:

    800 -> 2000
    1200 -> 0
    1600 -> 400
    2000 -> 800
    

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

خلاصة

إليك ما تعلمته عن المعلمات حتى الآن:

  • يمكن تمرير المعلومات إلى أساليب في شكل معلمات.
  • يتم تعريف المعلمات في توقيع الأسلوب.
  • يتم فصل المعلمات المتعددة بفواصل.
  • يمكن أن تقبل الأساليب الوسيطات المتغيرة أو الحرفية.