تفويض (مرجع 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)