التواقيع والقيم المُعادة؛ جسم التعبير؛ المعاملات الاختيارية والمسمّاة؛ ref/out؛ التحميل الزائد
عرّف تواقيع الأساليب وقيم الإرجاع، واستخدم الأساليب ذات جسم التعبير، والمعاملات الاختيارية والمسمّاة، وref/out، وافهم التحميل الزائد. ملاحظة: لا تتوفر الدوال المحلية في C# 6.
التواقيع والقيم المُعادة؛ جسم التعبير؛ المعاملات الاختيارية والمسمّاة؛ ref/out؛ التحميل الزائد درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 3 دروس في المجموع.
أساسيات الدوال
الهدف: تعريف دوال واضحة: التوقيع (الاسم، المعلمات، نوع الإرجاع)، والأجسام الموجزة، والسلوك القابل للتنبؤ.
- قيم الإرجاع
- الدوال ذات الجسم التعبيري
- المعلمات الاختيارية والمسماة
التواقيع وقيم الإرجاع
تتضمن الدالة اسمًا ومعلمات ونوع إرجاع. احرص على وضوح الأسماء وتركيزها.
using System;
public class MathUtil
{
// Signature: name Add, parameters (int a, int b), return int
public static int Add(int a, int b)
{
return a + b;
}
}
public class Program
{
public static void Main(string[] args)
{
int s = MathUtil.Add(2, 3);
Console.WriteLine("Sum = " + s);
}
}
الدوال ذات الجسم التعبيري
تستخدم الدوال ذات الجسم التعبيري الرمز => لكتابة دوال مساعدة صغيرة وواضحة.
using System;
public static class FormatUtil
{
// Expression-bodied method (C# 6): concise one-liner
public static string Greet(string name) => "Hello, " + name + "!";
}
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine(FormatUtil.Greet("Ada"));
}
}
المعلمات الاختيارية والمسماة
استخدم المعلمات الاختيارية للقيم الافتراضية المناسبة، والوسائط المسماة لتوضيح الاستدعاء.
using System;
public static class Logger
{
// Optional parameter: times has a default
public static void Log(string message, int times = 1)
{
for (int i = 0; i < times; i = i + 1)
{
Console.WriteLine(message);
}
}
}
public class Program
{
public static void Main(string[] args)
{
Logger.Log("One time"); // uses default
Logger.Log(message: "Twice", times: 2); // named arguments
}
}
أساسيات ref وout
يجب إسناد قيمة إلى المتغير قبل الاستدعاء عند استخدام ref. أما عند استخدام out، فيجب أن تسند الدالة قيمةً إليه قبل إرجاعها.
using System;
public static class RefOutDemo
{
public static void Increment(ref int x)
{
x = x + 1; // modifies caller's variable
}
public static bool TryDivide(int a, int b, out int result)
{
if (b == 0)
{
result = 0; // out must be assigned before return
return false;
}
result = a / b;
return true;
}
}
public class Program
{
public static void Main(string[] args)
{
int n = 10;
RefOutDemo.Increment(ref n);
Console.WriteLine("n = " + n); // 11
int r;
bool ok = RefOutDemo.TryDivide(9, 0, out r);
Console.WriteLine("ok=" + ok + " r=" + r);
}
}
التحميل الزائد وملاحظة
يعيد التحميل الزائد استخدام الاسم نفسه لعمليات مترابطة. ملاحظة: تظهر الدوال المحلية في إصدارات C# اللاحقة؛ وفي C# 6 استخدم دوال مساعدة خاصة وصغيرة.
using System;
public static class Calc
{
// Overloads: same name, different parameter lists
public static int Area(int side) { return side * side; }
public static int Area(int width, int height) { return width * height; }
// C# 6 has no local functions; use private helpers instead.
private static int DoubleIt(int x) { return x + x; }
public static int TwiceArea(int side)
{
int a = Area(side);
return DoubleIt(a);
}
}
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Area square 3 = " + Calc.Area(3));
Console.WriteLine("Area rect 3x4 = " + Calc.Area(3, 4));
Console.WriteLine("Twice area of 3 = " + Calc.TwiceArea(3));
}
}
قاعدة ref مقابل out
مراجعة
مراجعة: صمّم تواقيع واضحة وقيم إرجاع ودوال مساعدة صغيرة ذات جسم تعبيري؛ واستخدم المعلمات الاختيارية والمسماة لتحسين سهولة القراءة؛ واعرف الفرق بين ref وout؛ واستخدم التحميل الزائد بحذر. تظهر الدوال المحلية في إصدارات C# اللاحقة، لذا استخدم دوال مساعدة خاصة في C# 6.
الأسئلة الشائعة
هل درس «التواقيع والقيم المُعادة؛ جسم التعبير؛ المعاملات الاختيارية والمسمّاة؛ ref/out؛ التحميل الزائد» مجاني؟
نعم — نص درس «التواقيع والقيم المُعادة؛ جسم التعبير؛ المعاملات الاختيارية والمسمّاة؛ ref/out؛ التحميل الزائد» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 3 دروس في المجموع.
ماذا ستتعلم في «التواقيع والقيم المُعادة؛ جسم التعبير؛ المعاملات الاختيارية والمسمّاة؛ ref/out؛ التحميل الزائد»؟
عرّف تواقيع الأساليب وقيم الإرجاع، واستخدم الأساليب ذات جسم التعبير، والمعاملات الاختيارية والمسمّاة، وref/out، وافهم التحميل الزائد. ملاحظة: لا تتوفر الدوال المحلية في C# 6. تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟
لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.
كم من الوقت يستغرق درس «التواقيع والقيم المُعادة؛ جسم التعبير؛ المعاملات الاختيارية والمسمّاة؛ ref/out؛ التحميل الزائد»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟
نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- التواقيع والقيم المُعادة؛ جسم التعبير؛ المعاملات الاختيارية والمسمّاة؛ ref/out؛ التحميل الزائد
- المعاملات الاختيارية والمسمّاة؛ ref/out/in (الأساسيات)
- الدوال المحلية (ملاحظة حول C# 6) والتحميل الزائد