(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

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.

Hinweis Hinweis

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.

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



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

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft