base (C# Başvurusu)

base anahtar sözcüğü, türetilmiş bir sınıfın içinden temel sınıfın üyelerine erişmek için kullanılır. Şunu yapmak istiyorsanız kullanın:

  • Başka bir yöntem tarafından geçersiz kılınmış temel sınıfta bir yöntemi çağırın.

  • Türetilmiş sınıfın örnekleri oluşturulurken hangi temel sınıf oluşturucunun çağrılacağını belirtin.

Temel sınıf erişimine yalnızca bir oluşturucuda, bir örnek yönteminde ve bir örnek özellik erişimcisinde izin verilir.

Statik yöntem içinden anahtar sözcüğünü base kullanmak hata verir.

Erişilen temel sınıf, sınıf bildiriminde belirtilen temel sınıftır. Örneğin, belirtirseniz class ClassB : ClassAClassA'nın temel sınıfı ne olursa olsun ClassA üyelerine ClassB'den erişilir.

Örnek 1

Bu örnekte hem temel sınıfın Person hem de türetilmiş sınıfın Employee adlı GetInfobir yöntemi vardır. anahtar sözcüğünü base kullanarak, türetilmiş sınıfın içinden temel sınıfın yöntemini çağırmak GetInfo mümkündür.

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, sanal ve geçersiz kılma.

Örnek 2

Bu örnek, türetilmiş bir sınıfın örneklerini oluştururken çağrılan temel sınıf oluşturucunun nasıl belirtileceğini 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.

Ayrıca bkz.