Aracılığıyla paylaş


Temel anahtar sözcük

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:

  • Temel sınıfta başka bir yöntem tarafından geçersiz kılınan 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öntemin içinden anahtar sözcüğünü base kullanmak bir hataya neden olur.

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

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: {name}");
        Console.WriteLine($"SSN: {ssn}");
    }
}
class Employee : Person
{
    public readonly string id = "ABC567EFG";
    public override void GetInfo()
    {
        // Calling the base class GetInfo method:
        base.GetInfo();
        Console.WriteLine($"Employee ID: {id}");
    }
}

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

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
{
    private int num;

    public BaseClass() => 
        Console.WriteLine("in BaseClass()");

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

    public int GetNum() => 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)
*/

Daha fazla örnek için bkz. yeni, sanal ve geçersiz kılma.

C# dil belirtimi

Daha fazla bilgi için bkz. C# Dil Belirtimi. Dil belirtimi, C# söz dizimi ve kullanımı için kesin kaynaktır.

Ayrıca bkz.