0Pricing
C# Academy · درس

القيمة مقابل المرجع؛ القيم الحرفية؛ استنتاج var؛ const وreadonly

تعلّم كيف تختلف أنواع القيم عن الأنواع المرجعية، وكيف تعمل القيم الحرفية واللواحق العددية، ومتى تستخدم var، ودورَي const وreadonly.

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

أهمية الأنواع

الهدف: فهم الفرق بين أنواع القيم والأنواع المرجعية، ومعرفة كيفية عمل المتغيرات والقيم الحرفية والثوابت في التعليمات البرمجية اليومية.

القيمة مقابل المرجع

نوع القيمة: ينسخ البيانات عند الإسناد، مثل int وbool وstruct. النوع المرجعي: ينسخ مرجعًا، مثل class وarray وstring.

  • القيمة: تغييرات محلية أكثر أمانًا
  • المرجع: هوية كائن مشتركة

القيم الحرفية واللواحق

للقيم الحرفية أنواع. استخدم اللواحق للتوضيح: f (float)، وm (decimal)، وL (long).

  • 3.14f → float
  • 10m → decimal (للقيم المالية)
  • 123L → long

استنتاج النوع باستخدام var

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

const مقابل readonly

const: ثابت وقت الترجمة؛ readonly: يُعيّن في المُنشئ أو عند التصريح عنه.

  • استخدم const للقيم الثابتة، مثل Pi
  • استخدم readonly للقيم المعروفة في وقت التشغيل

الأنواع عمليًا

اطّلع على سلوك القيم والأنواع المرجعية، واللواحق العددية، واستنتاج النوع البسيط باستخدام var، واستخدام const وreadonly في برنامج صغير واحد.

using System;

// Value type (struct) copies by value
public struct PointS
{
  public int X;
  public int Y;
}

// Reference type (class) copies the reference
public class PointC
{
  public int X;
  public int Y;
}

// Readonly demo class
public class Config
{
  public readonly string Name;
  public Config(string name)
  {
    Name = name; // can set here
  }
}

public class Program
{
  // Compile-time constant
  private const double Pi = 3.14159;

  public static void Main(string[] args)
  {
    // 1) Value vs reference
    PointS a = new PointS { X = 1, Y = 2 };
    PointS b = a;         // copy value
    b.X = 99;
    Console.WriteLine("Value struct a.X = " + a.X); // 1 (unchanged)
    Console.WriteLine("Value struct b.X = " + b.X); // 99

    PointC ac = new PointC { X = 1, Y = 2 };
    PointC bc = ac;       // copy reference
    bc.X = 77;
    Console.WriteLine("Ref class ac.X = " + ac.X);  // 77 (same object)
    Console.WriteLine("Ref class bc.X = " + bc.X);  // 77

    // 2) Literals & suffixes
    float f = 3.14f;
    decimal price = 10m;
    long big = 123L;
    Console.WriteLine("f=" + f + " price=" + price + " big=" + big);

    // 3) var inference (type is obvious)
    var sum = a.X + a.Y; // int
    Console.WriteLine("sum=" + sum);

    // 4) const vs readonly
    Config cfg = new Config("Demo");
    Console.WriteLine("Pi=" + Pi + " Name=" + cfg.Name);
  }
}

تعريف نوع القيمة

تحقق سريع: ما العبارة التي تصف نوع القيمة على أفضل نحو؟

مراجعة

مراجعة: تنسخ أنواع القيم البيانات، بينما تشارك الأنواع المرجعية الكائنات. استخدم اللواحق للقيم العددية الحرفية، وvar عندما يكون النوع واضحًا، واختر بين const وreadonly بالشكل المناسب.

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

هل درس «القيمة مقابل المرجع؛ القيم الحرفية؛ استنتاج var؛ const وreadonly» مجاني؟

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

ماذا ستتعلم في «القيمة مقابل المرجع؛ القيم الحرفية؛ استنتاج var؛ const وreadonly»؟

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

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

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

كم من الوقت يستغرق درس «القيمة مقابل المرجع؛ القيم الحرفية؛ استنتاج var؛ const وreadonly»؟

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

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

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

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

  1. القيمة مقابل المرجع؛ القيم الحرفية؛ استنتاج var؛ const وreadonly
  2. المعاملات والتعبيرات: الحساب والمقارنة والمنطق
  3. اللواحق عمليًا؛ التحويل الصريح مقابل التحويل؛ إنشاء الكائنات في C# 6
← العودة إلى C# Academy