استكشاف المفوضات وLambdas
افهم المفوضات وتعبيرات lambda لكتابة تعليمات برمجية موجزة ومرنة
استكشاف المفوضات وLambdas درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 4 من أصل 5. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 5 دروس في المجموع.
استخدام تعبيرات lambda مع المفوضات
استخدام تعبيرات lambda مع المفوضات
يمكن إسناد تعبيرات lambda إلى المفوضات مباشرةً. مثال:

ما المقصود بالمفوض؟
ما المقصود بالمفوض؟
المفوض هو نوع يحتفظ بمراجع إلى أساليب ذات توقيع محدد. وتتيح المفوضات تمرير الأساليب كمعلمات أو إسنادها ديناميكيًا.
مثال: تُستخدم المفوضات غالبًا في عمليات الاستدعاء الراجعة ومعالجة الأحداث.
تعريف المفوضات واستخدامها
تعريف المفوضات واستخدامها
يمكنكم تعريف مفوض باستخدام الكلمة المفتاحية delegate. مثال:
نقطة مهمة: توفر المفوضات طريقة لتغليف الأساليب.
using System;
class Program {
// Define a delegate
public delegate void PrintDelegate(string message);
static void Main() {
PrintDelegate print = PrintMessage; // Assign method to delegate
print("Hello, Delegates!"); // Call the method via the delegate
}
static void PrintMessage(string message) {
Console.WriteLine(message);
}
}
ما المقصود بتعبير lambda؟
ما المقصود بتعبير lambda؟
تعبير lambda هو طريقة موجزة لتمثيل أسلوب مجهول في C#. ويستخدم الصيغة (parameters) => expression.
مثال: يمثّل (x, y) => x + y أسلوبًا يجمع عددين.
نصيحة: غالبًا ما تُستخدم تعبيرات lambda مع LINQ والمفوضات للإيجاز والوضوح.
تعبيرات lambda مع المفوضات
استخدام تعبيرات lambda مع المفوضات
يمكن إسناد تعبيرات lambda إلى المفوضات مباشرةً. مثال:
نقطة مهمة: تجعل تعبيرات lambda الشيفرة أكثر إيجازًا وأسهل قراءة.
using System;
class Program {
public delegate int MathOperation(int x, int y);
static void Main() {
MathOperation add = (x, y) => x + y; // Lambda for addition
Console.WriteLine("Result: " + add(10, 20)); // Outputs: Result: 30
}
}
المفوضات متعددة الإرسال
المفوضات متعددة الإرسال
يمكن لمفوض واحد الإشارة إلى عدة أساليب. ويُستدعى جميع الأساليب بالترتيب. مثال:
using System;
class Program {
public delegate void Notify(string message);
static void Main() {
Notify notify = PrintMessage;
notify += LogMessage;
notify("Hello, Multicast Delegates!"); // Calls both methods
}
static void PrintMessage(string message) {
Console.WriteLine("Print: " + message);
}
static void LogMessage(string message) {
Console.WriteLine("Log: " + message);
}
}
تحدي تطبيقي
تحدي تطبيقي
أنشئوا برنامجًا يستخدم مفوضًا باسم StringOperation لإجراء عمليات معالجة على السلاسل النصية، مثل تحويلها إلى أحرف كبيرة وعكس السلسلة النصية. مثال:
using System;
class Program {
public delegate string StringOperation(string input);
static void Main() {
StringOperation operations = ToUpperCase;
operations += ReverseString;
string input = "Hello";
foreach (var operation in operations.GetInvocationList()) {
Console.WriteLine(((StringOperation)operation)(input));
}
}
static string ToUpperCase(string input) {
return input.ToUpper();
}
static string ReverseString(string input) {
char[] chars = input.ToCharArray();
Array.Reverse(chars);
return new string(chars);
}
}
أفضل الممارسات للمفوضات وتعبيرات lambda
أفضل الممارسات للمفوضات وتعبيرات lambda
إليكم بعض أفضل الممارسات:
- استخدموا المفوضات لتنفيذ عمليات الاستدعاء الراجعة ومعالجة الأحداث.
- فضّلوا تعبيرات lambda لكتابة شيفرة موجزة وواضحة.
- ادمجوا تعبيرات lambda مع LINQ لمعالجة البيانات بكفاءة.
- تجنبوا تعبيرات lambda المعقدة للغاية للحفاظ على سهولة القراءة.
نصيحة: استخدموا أسماء معلمات ذات معنى في تعبيرات lambda لتحسين وضوح الشيفرة.
أحسنتم!
أحسنتم!
تهانينا! لقد تعلمتم كيفية استخدام المفوضات وتعبيرات lambda لكتابة شيفرة وظيفية وموجهة بالأحداث في C#. في الدرس التالي، سنستكشف الانعكاس في C#، وهي ميزة قوية لتحليل الأنواع أثناء التشغيل. فلنواصل كتابة الشيفرة!

الأسئلة الشائعة
هل درس «استكشاف المفوضات وLambdas» مجاني؟
نعم — نص درس «استكشاف المفوضات وLambdas» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 5 دروس في المجموع.
ماذا ستتعلم في «استكشاف المفوضات وLambdas»؟
افهم المفوضات وتعبيرات lambda لكتابة تعليمات برمجية موجزة ومرنة تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟
لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 5.
كم من الوقت يستغرق درس «استكشاف المفوضات وLambdas»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟
نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الأنواع العامة في C#
- Async وAwait: العمل مع التعليمات البرمجية غير المتزامنة
- فهم مؤشرات الترابط والمهام
- استكشاف المفوضات وLambdas
- فهم Reflection في C#