this (C#-Referenz)

Das this-Schlüsselwort verweist auf die aktuelle Instanz der Klasse und wird auch als Modifizierer des ersten Parameters einer Erweiterungsmethode verwendet.

HinweisHinweis

In diesem Artikel wird die Verwendung von this mit Klasseninstanzen erläutert.Weitere Informationen über die Verwendung in Erweiterungsmethoden finden Sie unter Erweiterungsmethoden (C#-Programmierhandbuch).

Im Folgenden sind häufige Verwendungen von this aufgeführt:

  • Kennzeichnen von Membern, die durch ähnliche Namen ausgeblendet sind, z. B.:
public Employee(string name, string alias)
{
    // Use this to qualify the fields, name and alias:
    this.name = name;
    this.alias = alias;
}
  • Übergeben eines Objekts als Parameter an andere Methoden, z. B.:

    CalcTax(this);
    
  • Deklarieren von Indexern, z. B.:

public int this[int param]
{
    get { return array[param]; }
    set { array[param] = value; }
}

Da statische Memberfunktionen auf der Klassenebene bestehen und nicht Teil eines Objekts sind, besitzen sie keinen this-Zeiger.Es ist nicht zulässig, in einer statischen Methode auf this zu verweisen.

Beispiel

In diesem Beispiel wird this zum Kennzeichnen der Employee-Klassenmember name und alias verwendet, die durch ähnliche Namen ausgeblendet sind.Es wird ebenfalls eingesetzt, um ein Objekt an die CalcTax-Methode, die einer anderen Klasse angehört, zu übergeben.

        class Employee
        {
            private string name;
            private string alias;
            private decimal salary = 3000.00m;

            // Constructor:
            public Employee(string name, string alias)
            {
                // Use this to qualify the fields, name and alias:
                this.name = name;
                this.alias = alias;
            }
            // Printing method:
            public void printEmployee()
            {
                Console.WriteLine("Name: {0}\nAlias: {1}", name, alias);
                // Passing the object to the CalcTax method by using this:
                Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this));
            }

            public decimal Salary
            {
                get { return salary; }
            }
        }

        class Tax
        {
            public static decimal CalcTax(Employee E)
            {
                return 0.08m * E.Salary;
            }
        }

        class MainClass
        {
            static void Main()
            {
                // Create objects:
                Employee E1 = new Employee("Mingda Pan", "mpan");

                // Display results:
                E1.printEmployee();
            }
        }
        /*
        Output:
            Name: Mingda Pan
            Alias: mpan
            Taxes: $240.00
         */

C#-Programmiersprachenspezifikation

Weitere Informationen finden Sie in der C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auch

Referenz

C#-Schlüsselwörter

base (C#-Referenz)

Methoden (C#-Programmierhandbuch)

Konzepte

C#-Programmierhandbuch

Weitere Ressourcen

C#-Referenz