Mənim bloqum

Base açar sözü

Base açar sözü C# proqramlaşdırma dilində sinfin miras aldığı başqa bir sinfin üzvlərinə istinad etmək üçün istifadə olunur. Aşağıdakı izahlı nümunələrlə, base açar sözünün təməl istifadə yerləri göstərilib. base İfadəsi, miras alan class-ın base class-dakı member-lərinə əlçatanlıq(giriş icazəsi) təmin edir, miras(Inhertence) mexanizminin daha effektiv şəkildə istifadəsinə imkan yaradır.


Konstruktorun çağrılması

Base ifadəsi əsasən miras alan sinfin konstruktor-unda çağırılır. Bir class, miras aldığı base class-ın konstruktornu çağırmaq üçün base keyword-nü istifadə edir. Bu, miras alınan class-dakı konstruktoru işə salır. Digər tərəfdən isə Base class-ın konstruktoru əgər parametr qəbul edirsə Drive class-da bu parametrlərə dəyər ancaq base açar sözü vasitəsi ilə göndərmək mümkündür. Başqa yolu da yoxdur. Aşağıdakı misalda DerivedClass sinfi öz konstruktorunu işə salmazdan öncə BaseClass-ın konstruktorunu base() ifadəsi ilə çağıraraq işə salır sonra sıra öz konstruktoruna gəlir.

image

This açar sözü ilə müqayisəsi

this açar sözü olduğumuz class-ın, base isə miras aldığımız class-ın konstruktorlarını təmsil edir. This açar sözü necə ki, olduğumuz class-ın memblerlərini bizə gətirir, base açar sözü də miras aldığımız Base class-ın Public memberlərini bizə gətirir. Bu member-lər base açar sözü olmadan da əlçatandır amma "base." yazdıqda gələn hər bir member-in base class-dan gəldiyini göstərir.

                        
                                                                                
public class BaseClass
{
    public BaseClass()
    {
        Console.WriteLine("Base Class Constructor");
    }
}

public class DerivedClass : BaseClass
{
    public DerivedClass() : base()
    {
        Console.WriteLine("Derived Class Constructor");
    }
}

// tətbiqi
DerivedClass derivedObj = new DerivedClass();

                                                     
                                                                             
                                                                            

Base Sinif Metodlarına Access

Aşağıdakı nümunədə DerivedClass sinfi, Display metodunu override edərək, base.Display() ifadəsi ilə BaseClass'ın Display metodunu çağırır.

                        
                                                                                
public class BaseClass
{
    public virtual void Display()
    {
        Console.WriteLine("Base Class Display");
    }
}

public class DerivedClass : BaseClass
{
    public override void Display()
    {
        // Base claass-ın metodu çağrılır
        base.Display();

        Console.WriteLine("Derived Class Display");
    }
}

// Tətbiqi
DerivedClass derivedObj = new DerivedClass();
derivedObj.Display();