0Pricing
C# Academy · درس

الأنواع العامة في C#

تعلّم كيف تتيح الأنواع العامة إنشاء هياكل تعليمات برمجية آمنة النوع وقابلة لإعادة الاستخدام

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

مقدمة إلى الأنواع العامة

الأنواع العامة في C#

مرحبًا بكم في الدرس الأول ضمن "ميزات C# المتقدمة"! ستتعلمون في هذا الدرس الأنواع العامة، وهي ميزة قوية في C# تتيح لكم إنشاء تعليمات برمجية مرنة وقابلة لإعادة الاستخدام. لنبدأ!

الأنواع العامة في C# — رسم توضيحي 1

ما الأنواع العامة؟

ما الأنواع العامة؟

الأنواع العامة هي ميزة في C# تتيح لكم تعريف الفئات والأساليب وهياكل البيانات باستخدام عنصر نائب لنوع البيانات التي تخزنها أو تستخدمها. وتوفر الأنواع العامة أمان الأنواع وإعادة استخدام التعليمات البرمجية.

مثال: يمكن لقائمة عامة (List<T>) تخزين عناصر من أي نوع مع ضمان أمان الأنواع.

إنشاء فئات عامة

إنشاء فئات عامة

يمكنكم تعريف فئة عامة باستخدام الصيغة <T>، حيث تمثل T معلمة نوع. مثال:

نقطة أساسية: استخدموا الأنواع العامة لإنشاء فئات تعمل مع أي نوع من البيانات مع الحفاظ على أمان الأنواع.

using System;

class GenericBox<T> {
    public T Value { get; set; }

    public void Display() {
        Console.WriteLine("Value: " + Value);
    }
}

class Program {
    static void Main() {
        GenericBox<int> intBox = new GenericBox<int> { Value = 42 };
        intBox.Display(); // Outputs: Value: 42

        GenericBox<string> stringBox = new GenericBox<string> { Value = "Hello, Generics!" };
        stringBox.Display(); // Outputs: Value: Hello, Generics!
    }
}

إنشاء أساليب عامة

إنشاء أساليب عامة

يمكنكم تعريف أسلوب عام داخل فئة. مثال:

نصيحة: استخدموا الأساليب العامة للعمليات التي تنطبق على أنواع بيانات متعددة.

using System;

class Program {
    static void Main() {
        PrintValue(42);
        PrintValue("Generics are powerful!");
    }

    static void PrintValue<T>(T value) {
        Console.WriteLine("Value: " + value);
    }
}

قيود الأنواع العامة

قيود الأنواع العامة

تقيّد القيود الأنواع التي يمكن استخدامها كمعلمات للنوع. مثال:

  • where T : struct - يجب أن يكون T من نوع قيمة.
  • where T : class - يجب أن يكون T من نوع مرجعي.
  • where T : new() - يجب أن يحتوي T على مُنشئ بلا معلمات.

مثال:

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

using System;

class Program {
    static void Main() {
        DisplayDefault<int>();
        DisplayDefault<string>();
    }

    static void DisplayDefault<T>() where T : new() {
        T instance = new T();
        Console.WriteLine("Created instance of: " + typeof(T));
    }
}

المجموعات العامة

المجموعات العامة

توفر C# عدة مجموعات عامة مضمّنة:

  • List<T>: تخزن مجموعة من العناصر في مصفوفة ديناميكية.
  • Dictionary<TKey, TValue>: يخزن أزواج المفتاح والقيمة لإجراء عمليات بحث سريعة.
  • Queue<T>: ينفذ بنية الداخل أولًا يخرج أولًا (FIFO).

مثال: استخدام قائمة عامة:

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
        names.Add("Diana");

        foreach (string name in names) {
            Console.WriteLine(name);
        }
    }
}

تحدي تطبيقي

تحدي تطبيقي

أنشئوا فئة عامة Pair<TKey, TValue> تخزن زوجًا من المفتاح والقيمة، وأساليب عامة Swap() تبدّل بين المفتاح والقيمة. مثال:

using System;

class Pair<TKey, TValue> {
    public TKey Key { get; set; }
    public TValue Value { get; set; }

    public void Swap() {
        (Key, Value) = ((TKey)(object)Value, (TValue)(object)Key);
    }

    public void Display() {
        Console.WriteLine($"Key: {Key}, Value: {Value}");
    }
}

class Program {
    static void Main() {
        Pair<string, int> pair = new Pair<string, int> { Key = "Age", Value = 30 };
        pair.Display();
        pair.Swap();
        pair.Display();
    }
}

أفضل الممارسات لاستخدام الأنواع العامة

أفضل الممارسات لاستخدام الأنواع العامة

إليكم بعض أفضل الممارسات:

  • استخدموا الأنواع العامة لإنشاء فئات وأساليب قابلة لإعادة الاستخدام وآمنة من حيث الأنواع.
  • طبّقوا القيود عند الحاجة إلى متطلبات محددة للنوع.
  • فضّلوا المجموعات العامة على المجموعات غير العامة لتحسين الأداء والأمان.

نصيحة: استخدموا أسماءً واضحة لمعلمات النوع، مثل T للنوع أو TKey وTValue لأزواج المفتاح والقيمة.

أحسنتم!

أحسنتم!

تهانينا! لقد تعلمتم كيفية استخدام الأنواع العامة لإنشاء شيفرة قابلة لإعادة الاستخدام ومرنة في C#. في الدرس التالي، سنستكشف البرمجة غير المتزامنة باستخدام async وawait. فلنواصل كتابة الشيفرة!

الأنواع العامة في C# — رسم توضيحي 10

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

هل درس «الأنواع العامة في C#» مجاني؟

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

ماذا ستتعلم في «الأنواع العامة في C#»؟

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

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

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

كم من الوقت يستغرق درس «الأنواع العامة في C#»؟

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

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

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

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

  1. الأنواع العامة في C#
  2. Async وAwait: العمل مع التعليمات البرمجية غير المتزامنة
  3. فهم مؤشرات الترابط والمهام
  4. استكشاف المفوضات وLambdas
  5. فهم Reflection في C#
← العودة إلى C# Academy