English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل أساسي لـ C#

دليل متقدم لـ C#

C# مبرمجة عنصرية (OOP)

الطريقة الغير معروفة (Anonymous Method) C#

بشكل واضح، الطريقة الاسمية هي طريقة بدون اسم. يمكن استخدام كلمة المفتاح (delegate) لتحديد الطريقة الاسمية في C#، ويمكن تخصيصها إلى متغيرات نوع delegate.

في الطريقة الاسمية، لا تحتاج إلى تحديد نوع العودة، إنه يتم استنتاجها من جملة return داخل جسم الطريقة.

public delegate void Print(int value);
static void Main(string[] args)
{
    Print print = delegate(int val) { 
        Console.WriteLine("داخل الطريقة الاسمية. القيمة: {0}", val); 
    }
    print(100);
}
الإخراج:
داخل الطريقة الاسمية. القيمة: 100

وصول الطريقة الاسمية إلى المتغيرات المحددة في الطريقة الخارجية

يمكن للطريقة الاسمية الوصول إلى المتغيرات المحددة في الطريقة الخارجية

public delegate void Print(int value);
static void Main(string[] args)
{
    int i = 10;
    
    Print prnt = delegate(int val) {
        val += i;
        Console.WriteLine("الطريقة الاسمية: {0}", val); 
    }
    prnt(100);
}
الإخراج:
الطريقة الاسمية: 110

استخدام الطريقة الاسمية كمعامل

يمكن أيضًا إرسال الطريقة الاسمية كمعامل إلى طريقة تستقبل المعامل كمعامل

في المثال التالي، PrintHelperMethod() يستخدم الأول معامل Print:

public delegate void Print(int value);
class Program
{
    public static void PrintHelperMethod(Print printDel, int val)
    { 
        val += 10;
        printDel(val);
    }
    static void Main(string[] args)
    {
        PrintHelperMethod(delegate(int val) { Console.WriteLine("الطريقة الاسمية: {0}", val); }, 100);
    }
}
الإخراج:
الطريقة الاسمية: 110

الطريقة الاسمية يمكن استخدامها كمعالج للأحداث

saveButton.Click += delegate(Object o, EventArgs e)
{ 
    System.Windows.Forms.MessageBox.Show("تسجيل نجاح!"); 
}

أدخل C#3.0 تعبيرات lambda، التي تعمل مثل الطريقة الغير معروفة.

قيود الطريقة الغير معروفة

  • لا يمكن أن تحتوي على تعليمات التحول، مثل goto،break أو continue.

  • لا يمكن أن تصل إلى معاملات ref أو out الخارجية.

  • لا يمكن أن تملك أو تصل إلى الكود الغير آمن.

  • لا يمكن استخدامها على يسار عمليات التحقق is.

 النقاط التي يجب تذكرها

  1. يمكن استخدام كلمة المفتاح delegate لتعريف الطريقة الغير معروفة.

  2. يجب تخصيص الطريقة الغير معروفة للمندوب.

  3. يمكن للطريقة الغير معروفة الوصول إلى المتغيرات أو الوظائف الخارجية.

  4. يمكن استخدام الطريقة الغير معروفة كمعامل.

  5. يمكن استخدام الطريقة الغير معروفة كمعالج الحدث.