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.
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.
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();
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();