0Pricing
C# Academy · درس

الأعضاء ذات جسم التعبير

اكتبوا خصائص وأساليب موجزة

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

صياغة أكثر اختصارًا

تستخدم صياغة الجسم التعبيري الرمز => لتعريف عضو باعتباره تعبيرًا واحدًا، بدلًا من جسم كامل { ... }. وتجعل الأعضاء القصيرة موجزة وسهلة القراءة.

using System;

class Greeter
{
    public string Hello() => "Hi there!";
}

class Program
{
    static void Main()
    {
        var g = new Greeter();
        Console.WriteLine(g.Hello());
    }
}

الدوال ذات الجسم التعبيري

يمكن لأي دالة يكون جسمها تعبيرًا واحدًا أن تستخدم =>. وتصبح نتيجة التعبير هي القيمة المُعادة.

using System;

class MathHelper
{
    public int Square(int x) => x * x;
    public int Add(int a, int b) => a + b;
}

class Program
{
    static void Main()
    {
        var m = new MathHelper();
        Console.WriteLine(m.Square(6));
        Console.WriteLine(m.Add(3, 4));
    }
}

الخصائص للقراءة فقط ذات الجسم التعبيري

يمكن لخاصية محسوبة للقراءة فقط استخدام => بدلًا من get { return ...; }.

using System;

class Rectangle
{
    public double Width { get; set; }
    public double Height { get; set; }
    public double Area => Width * Height;
}

class Program
{
    static void Main()
    {
        var r = new Rectangle { Width = 4, Height = 5 };
        Console.WriteLine("Area: " + r.Area);
    }
}

get وset بصياغة الجسم التعبيري

يمكنك أيضًا منح دالتي الوصول get وset جسمًا تعبيريًا خاصًا بكل منهما، وهو أمر مفيد عند استخدام حقل إسناد.

using System;

class Person
{
    private string _name;
    public string Name
    {
        get => _name;
        set => _name = value.Trim();
    }
}

class Program
{
    static void Main()
    {
        var p = new Person();
        p.Name = "  Niki  ";
        Console.WriteLine("[" + p.Name + "]");
    }
}

إعادة السلاسل النصية المحسوبة

تتألق الخصائص ذات الجسم التعبيري عند التعامل مع القيم المنسّقة والمشتقة، مثل الأسماء الكاملة أو التسميات.

using System;

class Customer
{
    public string First { get; set; }
    public string Last { get; set; }
    public string Display => First + " " + Last;
}

class Program
{
    static void Main()
    {
        var c = new Customer { First = "Ada", Last = "Lovelace" };
        Console.WriteLine(c.Display);
    }
}

الجسم التعبيري مع الشروط

يمكن أن يتضمن التعبير الواحد عاملًا شرطيًا (ثلاثيًا)، ما يحافظ على منطق التفرع في سطر واحد.

using System;

class Account
{
    public decimal Balance { get; set; }
    public string Status => Balance >= 0 ? "OK" : "Overdrawn";
}

class Program
{
    static void Main()
    {
        var a = new Account { Balance = -20m };
        Console.WriteLine(a.Status);
    }
}

الدوال التي لا تُرجع قيمة وذات الجسم التعبيري

يمكن أيضًا أن تكون الدالة التي تنفذ إجراءً ولا تُرجع شيئًا ذات جسم تعبيري، إذا كان الإجراء عبارة عن تعليمة واحدة.

using System;

class Logger
{
    public void Log(string msg) => Console.WriteLine("[LOG] " + msg);
}

class Program
{
    static void Main()
    {
        var log = new Logger();
        log.Log("Started");
    }
}

المنشئات ذات الجسم التعبيري

يمكن للمنشئ الذي يتضمن عملية إسناد واحدة أن يستخدم صياغة السهم أيضًا.

using System;

class Point
{
    public int X { get; }
    public Point(int x) => X = x;
}

class Program
{
    static void Main()
    {
        var p = new Point(7);
        Console.WriteLine("X = " + p.X);
    }
}

متى لا تستخدمها

تُستخدم الأجسام التعبيرية مع التعابير المنفردة فقط. إذا احتجت إلى عدة تعليمات أو حلقات أو فروع للتحقق من الصحة، فاستخدم جسمًا عاديًا بين كتلتين بدلًا من ذلك.

using System;

class Calculator
{
    // Single expression -> arrow is fine
    public int Triple(int n) => n * 3;

    // Multiple statements -> use a block
    public int SumTo(int n)
    {
        int total = 0;
        for (int i = 1; i <= n; i++) total += i;
        return total;
    }
}

class Program
{
    static void Main()
    {
        var c = new Calculator();
        Console.WriteLine(c.Triple(4));
        Console.WriteLine(c.SumTo(5));
    }
}

دمج عدة أعضاء في فئة واحدة

يمكن لفئة صغيرة استخدام صياغة السهم في جميع أعضائها تقريبًا، ما يقلل التعليمات البرمجية المتكررة بدرجة كبيرة.

using System;

class Temperature
{
    public double Celsius { get; set; }
    public double Fahrenheit => Celsius * 9 / 5 + 32;
    public double Kelvin => Celsius + 273.15;
    public override string ToString() => Celsius + "C";
}

class Program
{
    static void Main()
    {
        var t = new Temperature { Celsius = 25 };
        Console.WriteLine(t + " = " + t.Fahrenheit + "F = " + t.Kelvin + "K");
    }
}

جمع العناصر معًا

استخدم الأعضاء ذات الجسم التعبيري للحفاظ على نظافة دوال الوصول البسيطة والدوال المساعدة والدوال ذات السطر الواحد، مع حجز الأجسام المكوّنة من كتل للمنطق الفعلي.

using System;

class Order
{
    public int Quantity { get; set; }
    public decimal UnitPrice { get; set; }
    public decimal Total => Quantity * UnitPrice;
    public bool IsLarge => Quantity > 10;
}

class Program
{
    static void Main()
    {
        var o = new Order { Quantity = 12, UnitPrice = 9.99m };
        Console.WriteLine("Total: " + o.Total + ", Large: " + o.IsLarge);
    }
}

تحقق سريع

اختبر فهمك للأعضاء ذات الجسم التعبيري.

مراجعة

تستخدم الأعضاء ذات الجسم التعبيري الرمز => لتعريف عضو بتعبير واحد. وتعمل مع الدوال والخصائص للقراءة فقط ودوال الوصول الفردية get/set وحتى المنشئات. استخدمها للتعبيرات المختصرة ذات السطر الواحد، وانتقل إلى جسم مكوّن من كتلة كلما احتجت إلى عدة تعليمات.

using System;

class Demo
{
    public int N { get; set; }
    public int Doubled => N * 2;
    public string Label() => "N is " + N;
}

class Program
{
    static void Main()
    {
        var d = new Demo { N = 9 };
        Console.WriteLine(d.Label() + ", doubled = " + d.Doubled);
    }
}

الأسئلة الشائعة

هل درس «الأعضاء ذات جسم التعبير» مجاني؟

نعم — نص درس «الأعضاء ذات جسم التعبير» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.

ماذا ستتعلم في «الأعضاء ذات جسم التعبير»؟

اكتبوا خصائص وأساليب موجزة تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟

لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «الأعضاء ذات جسم التعبير»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟

نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الخصائص المُطبَّقة تلقائيًا
  2. الخصائص الكاملة مع الحقول الداعمة
  3. الأعضاء ذات جسم التعبير
  4. المفهرسات
← العودة إلى C# Academy