base (odwołanie w C#)base (C# Reference)

base Słowo kluczowe jest używane do uzyskiwania dostępu do składowych klasy bazowej z poziomu klasy pochodnej:The base keyword is used to access members of the base class from within a derived class:

  • Wywołaj metodę w klasie bazowej, która została zastąpiona przez inną metodę.Call a method on the base class that has been overridden by another method.

  • Określ, który Konstruktor klasy bazowej powinien być wywoływany podczas tworzenia wystąpień klasy pochodnej.Specify which base-class constructor should be called when creating instances of the derived class.

Dostęp do klasy podstawowej jest dozwolony tylko w konstruktorze, metodzie wystąpienia lub akcesorze właściwości wystąpienia.A base class access is permitted only in a constructor, an instance method, or an instance property accessor.

Wystąpił błąd przy użyciu base słowa kluczowego z metody statycznej.It is an error to use the base keyword from within a static method.

Dostępną klasą bazową jest klasa bazowa określona w deklaracji klasy.The base class that is accessed is the base class specified in the class declaration. Na przykład, jeśli określisz class ClassB : ClassA, członkowie ClassA są dostępni z ClassB, niezależnie od klasy bazowej ClassA.For example, if you specify class ClassB : ClassA, the members of ClassA are accessed from ClassB, regardless of the base class of ClassA.

PrzykładExample

W tym przykładzie zarówno Klasa bazowa, Person, jak i EmployeeKlasa pochodna, mają metodę o nazwie Getinfo.In this example, both the base class, Person, and the derived class, Employee, have a method named Getinfo. Za pomocą base słowa kluczowego, można Getinfo wywołać metodę w klasie bazowej, z poziomu klasy pochodnej.By using the base keyword, it is possible to call the Getinfo method on the base class, from within the derived class.

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
*/

Aby uzyskać więcej przykładów, zobacz nowe, wirtualnei przesłonięcie.For additional examples, see new, virtual, and override.

PrzykładExample

Ten przykład pokazuje, jak określić Konstruktor klasy bazowej wywoływany podczas tworzenia wystąpień klasy pochodnej.This example shows how to specify the base-class constructor called when creating instances of a derived class.

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)
*/

specyfikacja języka C#C# language specification

Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#.For more information, see the C# Language Specification. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.The language specification is the definitive source for C# syntax and usage.

Zobacz takżeSee also