English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
بشكل واضح، الطريقة الاسمية هي طريقة بدون اسم. يمكن استخدام كلمة المفتاح (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.
يمكن استخدام كلمة المفتاح delegate لتعريف الطريقة الغير معروفة.
يجب تخصيص الطريقة الغير معروفة للمندوب.
يمكن للطريقة الغير معروفة الوصول إلى المتغيرات أو الوظائف الخارجية.
يمكن استخدام الطريقة الغير معروفة كمعامل.
يمكن استخدام الطريقة الغير معروفة كمعالج الحدث.