تفويض (مرجع C# )

تصريح نوع التفويض يشبه توقيع الأسلوب. يحتوي على قيمة إرجاع وأي رقم المعلمات من أي نوع:

public delegate void TestDelegate(string message);
public delegate int TestDelegate(MyType m, long num);

delegate هو نوع المرجع الذي يمكن استخدامه لتغليف الأساليب المسماة أو مجهولة الأسلوب. تشابه التفويضات مع مؤشرات الدالة في C++؛ ومع ذلك التفويضات هي آمن-النوع و آمنة. لتطبيقات التفويضات، راجع المفوضين و مفوضين عامين.

ملاحظات

المفوضين هي الأساس لـ أحداث.

يمكن إنشاء مثيل التفويض بإقران أما بأسلوب المسمى أو المجهول. للحصول على معلومات أكثر, راجع الأساليب المسماة و الأساليب المجهولة.

يجب إنشاء مثيل التفويض مع أسلوب أو تعبير الـ لامدا التي تملك نوع إرجاع متوافق و معلمات إدخال. لمزيد من المعلومات حول درجة التباين المسموح بها في أسلوب التوقيع, راجع الفرق في المفوضون (C# و Visual Basic). للاستخدام مع الأساليب المجهولة, المفوض و تعليمات برمجية المقترنة مع ذلك تم تعريفها معاً. تتم مناقشة كلا الطرق إنشاء مثيل التفويضات في هذا القسم.

مثال

// Declare delegate -- defines required signature:
delegate double MathAction(double num);

class DelegateTest
{
    // Regular method that matches signature:
    static double Double(double input)
    {
        return input * 2;
    }

    static void Main()
    {
        // Instantiate delegate with named method:
        MathAction ma = Double;

        // Invoke delegate ma:
        double multByTwo = ma(4.5);
        Console.WriteLine(multByTwo);

        // Instantiate delegate with anonymous method:
        MathAction ma2 = delegate(double input)
        {
            return input * input;
        };

        double square = ma2(5);
        Console.WriteLine(square);

        // Instantiate delegate with lambda expression
        MathAction ma3 = s => s * s * s;
        double cube = ma3(4.375);

        Console.WriteLine(cube);
    }
}

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

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

راجع أيضًا:

المرجع

الكلمات الأساسية لـ #C

مرجع أنواع (C# مرجع)

التفويضات (دليل البرمجة لـ #C)

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

التفويضات ذات الأساليب المسماة والأساليب المجهولة (دليل البرمجة لـ #C)

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

المبادئ

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

موارد أخرى

مرجع C#‎