Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das this
Schlüsselwort bezieht sich auf die aktuelle Instanz der Klasse und wird auch als Modifizierer des ersten Parameters einer Erweiterungsmethode verwendet.
Hinweis
In diesem Artikel wird die Verwendung von this
mit Klasseninstanzen diskutiert. Weitere Informationen zur Verwendung in Erweiterungsmethoden finden Sie im extension
Schlüsselwort.
Im Folgenden finden Sie allgemeine Verwendungsmöglichkeiten:this
Zum Qualifizieren von Membern, die durch ähnliche Namen ausgeblendet werden, wie z.B.:
public class Employee { private string alias; private string name; public Employee(string name, string alias) { // Use this to qualify the members of the class // instead of the constructor parameters. this.name = name; this.alias = alias; } }
So übergeben Sie ein Objekt als Parameter an andere Methoden, z. B.:
CalcTax(this);
So deklarieren Sie Indexer, z. B.:
public int this[int param] { get => array[param]; set => array[param] = value; }
Statische Memberfunktionen, da sie auf Klassenebene und nicht als Teil eines Objekts vorhanden sind, weisen this
keinen Zeiger auf. Es ist ein Fehler, auf this
in einer statischen Methode zu verweisen.
In diesem Beispiel blenden die Parameter name
und alias
Felder mit denselben Namen aus. Das this
Schlüsselwort kennzeichnet diese Variablen als Employee
Klassenmitglieder. Das this
Schlüsselwort gibt auch das Objekt für die Methode CalcTax
an, die zu einer anderen Klasse gehört.
class Employee
{
private string name;
private string alias;
// 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: {name}
Alias: {alias}
""");
// Passing the object to the CalcTax method by using this:
Console.WriteLine($"Taxes: {Tax.CalcTax(this):C}");
}
public decimal Salary { get; } = 3000.00m;
}
class Tax
{
public static decimal CalcTax(Employee E)=> 0.08m * E.Salary;
}
class Program
{
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#-Sprachspezifikation
Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die endgültige Quelle für C#-Syntax und -Verwendung.