base (مرجع #C)

يتم استخدام الكلمة الأساسية base للوصول إلى أعضاء الفئة الأساسية من داخل الفئة المشتقة:

  • للاتصال بالأسلوب الذي يكون في الفئة الأساسية والذي تم تجاوزه بواسطة أسلوب آخر.

  • لتحديد أي دالة إنشائية من الفئة الأساسية يجب استدعاؤها عند إنشاء مثيلات للفئة المشتقة.

يتم السماح بالوصول للفئة الأساسية فقط في الدالة الإنشائية أو أسلوب مثيل أو في استرجاع قيمة الخاصية للمثيل.

من الخطأ استخدام الكلمة الأساسية base داخل أسلوب ثابت.

الفئة الأساسية التي يتم الوصول إليها هي الفئة الأساسية المحددة في تعريف الفئة. على سبيل المثال، إذا حددت التالي class ClassB : ClassA، يتم الوصول إلى أعضاء ClassA من ClassB بغض النظر عن الفئة الأساسية لـ ClassA.

مثال

في هذا المثال، كلاً من الفئة الأساسية, Person، والفئة المشتقة Employee، لديهما أسلوب يسمى Getinfo. باستخدام الكلمة الأساسية base يمكن استدعاء أسلوب Getinfo من الفئة الأساسية من داخل الفئة المشتقة.

    public class Person
    {
        protected string ssn = "444-55-6666";
        protected string name = "John L. Malgraine";

        public virtual void GetInfo()
        {
            Console.WriteLine("Name: {0}", name);
            Console.WriteLine("SSN: {0}", ssn);
        }
    }
    class Employee : Person
    {
        public string id = "ABC567EFG";
        public override void GetInfo()
        {
            // Calling the base class GetInfo method:
            base.GetInfo();
            Console.WriteLine("Employee ID: {0}", id);
        }
    }

    class TestClass
    {
        static void Main()
        {
            Employee E = new Employee();
            E.GetInfo();
        }
    }
    /*
    Output
    Name: John L. Malgraine
    SSN: 444-55-6666
    Employee ID: ABC567EFG
    */

للحصول على مزيد من الأمثلة، راجع new و virtual و override.

يوضح هذا المثال كيفية تحديد الدالة الإنشائية للفئة الأساسية التي يتم استدعاؤها عند إنشاء مثيلات للفئة المشتقة.

public class BaseClass
{
    int num;

    public BaseClass()
    {
        Console.WriteLine("in BaseClass()");
    }

    public BaseClass(int i)
    {
        num = i;
        Console.WriteLine("in BaseClass(int i)");
    }

    public int GetNum()
    {
        return num;
    }
}

public class DerivedClass : BaseClass
{
    // This constructor will call BaseClass.BaseClass()
    public DerivedClass() : base()
    {
    }

    // This constructor will call BaseClass.BaseClass(int i)
    public DerivedClass(int i) : base(i)
    {
    }

    static void Main()
    {
        DerivedClass md = new DerivedClass();
        DerivedClass md1 = new DerivedClass(1);
    }
}
/*
Output:
in BaseClass()
in BaseClass(int i)
*/

مواصفات لغة #C

لمزيد من المعلومات، راجع مواصفات لغة #C. مواصفات اللغة هي المصدر النهائي لبناء جملة C# واستخدامها.

راجع أيضًا:

المرجع

الكلمات الأساسية لـ #C

this (مرجع #C)

المبادئ

دليل البرمجة لـ #C

موارد أخرى

مرجع C#‎