تمرير المعلمات (دليل البرمجة لـ #C)

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

يوضح المثال التالي الفرق بين معلمات القيمة ومعلمات المرجع.

class Program
{
    static void Main(string[] args)
    {
        int arg;

        // Passing by value.
        // The value of arg in Main is not changed.
        arg = 4;
        squareVal(arg);
        Console.WriteLine(arg);
        // Output: 4

        // Passing by reference.
        // The value of arg in Main is changed.
        arg = 4;
        squareRef(ref arg);
        Console.WriteLine(arg);
        // Output: 16 
    }

    static void squareVal(int valParameter)
    {
        valParameter *= valParameter;
    }

    // Passing by reference
    static void squareRef(ref int refParameter)
    {
        refParameter *= refParameter;
    }
}

لمزيد من المعلومات، راجع المواضيع التالية:

مواصفات لغة #C

لمزيد من المعلومات، راجع مواصفات لغة #C. مواصفات اللغة هي المصدر النهائي لبناء جملة C# واستخدامها.

راجع أيضًا:

المرجع

الأساليب (دليل البرمجة لـ #C)

المبادئ

دليل البرمجة لـ #C