base (C# Başvurusu)
anahtar base sözcüğü türetilmiş bir sınıfın içindeki temel sınıfın üyelerine erişmek için kullanılır:
Başka bir yöntem tarafından geçersiz kılınan temel sınıfta bir yöntem çağırma.
Türetilmiş sınıfın örnekleri oluşturulurken çağrılmalıdır temel sınıf oluşturucu belirtin.
Temel sınıf erişimine yalnızca oluşturucuda, örnek yönteminde veya örnek özelliği erişimcisinde izin verilir.
Statik bir yöntemin içinde anahtar base sözcüğünün kullanımı bir hatadır.
Erişilen temel sınıf, sınıf bildiriminde belirtilen temel sınıftır. Örneğin, belirtirsiniz, ClassA'nın temel sınıfına bakılmaksızın ClassA üyelerine class ClassB : ClassA ClassB'den erişilir.
Örnek 1
Bu örnekte, hem temel sınıfı hem de Person türetilmiş sınıfı adlı bir yöntemi Employee Getinfo vardır. anahtar sözcüğü kullanılarak, türetilmiş sınıfın içinde temel base Getinfo sınıftan yöntemini çağırabilirsiniz.
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
*/
Ek örnekler için bkz. yeni, sanalve geçersiz kılma.
Örnek 2
Bu örnekte, türetilmiş bir sınıfın örnekleri oluşturulurken çağrılır temel sınıf oluşturucusu belirtmeyi gösterir.
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# dili belirtimi
Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.