جاري التحميل...

قيم الإرجاع

اكتب تابعًا باسم twice يأخذ int باسم n ويعيد ضعف ذلك الرقم. الترويسة تبدأ بـ int، لا بـ void: static int twice(int n). داخل الأقواس المعقوفة اكتب return n * 2;. في Main اكتب نتيجة الاستدعاء: Console.WriteLine(twice(7));. يجب أن تُظهر الشاشة سطرًا واحدًا: 14. التابع twice نفسه لا يستدعي WriteLine. يعيد فقط 14. Main يكتب ذلك الرقم. هذا الإرجاع هو ما تعلّمه هذه الصفحة. أبقِ اسم الصنف العام Pine.

أعد رقمًا إلى Main

في صفحة المعاملات، كان greet وshow يكتبان داخل جسم التابع. الاستدعاء أرسل قيمة إلى الداخل، والتابع كتب على الشاشة. هنا التابع ما زال يستقبل قيمة، لكنه يرسل قيمة أيضًا إلى الخارج. كلمة return تعلّم تلك القيمة الخارجة. Main يمكنه تخزينها أو كتابتها.
افتح ملف Pine. اسم الصنف يبقى Pine. هذه الصفحة لا تعيد تسمية النوع. احذف أي عرض greet يكتب فقط hi lena داخل التابع إن كان ذلك كل ما لديك في Main. احذف أي بقايا ring();. احذف أي سطر ReadLine. الملف الذي تحتفظ به لا ينتظر الكتابة.
خارج Main، وما زلت داخل أقواس الصنف المعقوفة، تقول الترويسة int لأن القيمة التي تعود هي int. بين الأقواس، int n ما زال معاملًا — نفس فكرة الصفحة السابقة. الجسم يحمل جملة واحدة: return n * 2;. يضرب n في 2 ويعيد الناتج إلى من استدعى twice. لا يوجد Console.WriteLine داخل twice في هذه الصفحة. احفظ الملف قبل التشغيل. البرنامج الكامل الأول في الصندوق التالي.

الملف الذي تحتفظ به

هذا البرنامج الصغير الكامل. twice يحسب. Main يكتب.

twice returns n times 2

csharp
using System;

public class Pine
{
    public static void Main()
    {
        Console.WriteLine(twice(7));
    }

    static int twice(int n)
    {
        return n * 2;
    }
}

اقرأ من الأعلى. using System; يجهّز الأسماء القصيرة. public class Pine يسمي النوع. public static void Main() حيث يبدأ وقت التشغيل. الاستدعاء twice(7) يرسل 7 إلى n. static int twice(int n) يحمل return n * 2;. Console.WriteLine يكتب القيمة التي عادت. سطر واحد على الشاشة: 14.

شغّله بـ dotnet run. البرنامج يكتب سطرًا واحدًا ويتوقف. لا ينتظر أن تكتب شيئًا. إذا انتظر dotnet run، فما زال ReadLine في الملف. احذف ذلك السطر وأبقِ Console.WriteLine(twice(7)); مع تابع twice أعلاه. الشاشة تظهر 14. إذا ظهرت الشاشة hi lena، فما زال استدعاء greet متبقيًا يعمل. إذا ظهرت حروف twice، فسطر الكتابة يضع اقتباسًا حول تلك الكلمة: Console.WriteLine("twice");. لا تعِد تثبيت .NET SDK لشاشة تُظهر السطر الخطأ.

امشِ تشغيلًا كاملًا بالترتيب. C# يبدأ عند Main. الاستدعاء twice(7) يرسل 7 إلى n. داخل twice، يحسب return n * 2; القيمة 14 ويعيد ذلك 14 إلى Main. ثم يكتب WriteLine القيمة 14. التابع twice لم يكتب على الشاشة بنفسه أبدًا. إذا غيّرت الاستدعاء إلى twice(3)، يجب أن تُظهر الشاشة 6. جسم التابع يبقى نفسه؛ فقط الحجة تتغير، والناتج المُعاد يتغير معها. إذا أظهرت الشاشة 7 بدل 14، فقد كتبت n داخل twice أو كتبت الحجة في Main دون استدعاء twice — ضع المضاعفة على سطر return واكتب نتيجة الاستدعاء.
الفصل المهم هو من يخاطب الشاشة. في هذه الصفحة، twice يخاطب Main فقط عبر return. وMain يخاطب الشاشة عبر WriteLine. لذلك لا يمكن للترويسة أن تقول void بعد الآن: يجب أن يعود شيء ليكتبه Main. عندما تخزّن النتيجة أولًا في result، فما زلت تستخدم نفس الإرجاع؛ تؤخّر الكتابة سطرًا واحدًا فقط.

اكتب القيمة التي استلمها Main

يمكنك أيضًا الاحتفاظ بالقيمة المُعادة في اسم داخل Main قبل أن تكتب. غيّر الرقم في الاستدعاء فقط إن أردت سطر شاشة مختلفًا. اترك return n * 2; كما هو.

store the returned value

csharp
using System;

public class Pine
{
    public static void Main()
    {
        int result = twice(7);
        Console.WriteLine(result);
    }

    static int twice(int n)
    {
        return n * 2;
    }
}

هذا الملف الثاني. يعلّم نفس الإرجاع باسم مخزّن. شغّل dotnet run. ما زال يظهر سطرًا واحدًا: 14. ينتهي الاستدعاء أولًا ويملأ result. ثم يكتب WriteLine قيمة result. الشكلان — كتابة الاستدعاء مباشرة، أو التخزين ثم الكتابة — يستخدمان نفس return من twice. يجب أن يكتب twice(0) القيمة 0. ويجب أن يكتب twice(10) القيمة 20. في كل مرة يكتب Main ما أعاده twice. بعد أن ترى شكل التخزين، أعد ملف الاستدعاء بسطر واحد إن كان ذلك الشكل الذي تريد حفظه: Console.WriteLine(twice(7)); في Main.
إذا قال twice ما زال void في الترويسة بينما الجسم يحمل return n * 2;، فالبناء يكتب خطأ — void يعني أن شيئًا لا يعود، لذا return بقيمة لا يناسب. إذا قالت الترويسة int والجسم بلا return، فالبناء يكتب خطأ أيضًا — تابع int في هذا الشكل للمبتدئين يجب أن يعيد int. إذا كتب الجسم ولم يُعِد أبدًا، فأنت عدت إلى فكرة صفحة المعاملات؛ هذه الصفحة تريد الرقم في يد Main.

void مقابل إرجاع بنوع

اقرأ الشكلين جنبًا إلى جنب. تابع void يشغّل جسمه وينتهي. تابع بإرجاع بنوع يجب أن يعيد قيمة بـ return. عندما لا يكون نوع الإرجاع void، يعامل Main الاستدعاء كتلك القيمة.

📊 void body versus return

Shape What the method does What Main often does
void show(int n) writes inside the body calls show(9); and may write nothing else
int twice(int n) return n * 2; writes or stores twice(7)

خلط شائع هو وضع Console.WriteLine(n * 2); داخل twice وترك الترويسة int بلا return. عندها يشتكي البناء، أو تُعيد الترويسة إلى void فلا يعود لديك قيمة ليكتبها Main من الاستدعاء. خلط آخر هو كتابة return; بلا قيمة بينما الترويسة تقول int. أبقِ return n * 2; حتى يطابق نوع التعبير المُعاد النوع int. كتابة Console.WriteLine("twice"); في Main تكتب كلمة twice؛ ولا تستدعي التابع. أبقِ Console.WriteLine(twice(7)) عندما تريد 14 على الشاشة.

عرض greet المتبقي الذي يكتب فقط hi lena داخل التابع يمكن أن يجلس في نفس الملف ويُربك الشاشة. صفِّ Main حتى WriteLine الذي يستخدم twice، وأبقِ تابعًا واحدًا يعيد قيمة. لا تُدخل twice داخل أقواس Main المعقوفة. التوابع تجلس داخل الصنف، بجانب Main.

يمكنك كتابة static int twice(int n)، وإعادة قيمة محسوبة، وكتابة تلك القيمة من Main. الشاشة تُظهر الرقم الذي استلمه Main، لا سطرًا كتبه التابع بنفسه. void ترويسة خاطئة عندما تحتاج قيمة عائدة. الصفحة التالية هي overloading، حيث يمكن لأكثر من تابع أن يشارك اسمًا عندما تختلف قوائم معاملاتهم.

الشاشة تحمل ما استلمه Main

الملف الذي تحتفظ به يكتب 14 عندما يكتب Main نتيجة twice(7). كلمة return في جسم التابع، وreturn ليست على الشاشة كتسمية مطبوعة. الاقتباس حول twice يكتب حروفًا، لا نتيجة الاستدعاء. إدخال twice داخل Main ليس الشكل الذي تبنيه هذه الدرس.

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

❓
6
الأسئلة
🎯
70%
للنجاح
♾️
∞
الوقت
🔄
∞
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى