Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het this trefwoord verwijst naar het huidige exemplaar van de klasse en wordt ook gebruikt als een wijziging van de eerste parameter van een extensiemethode.
Notitie
In dit artikel wordt het gebruik besproken om this te verwijzen naar het ontvangerexemplaren in het huidige lid. Zie het trefwoord voor meer informatie over het extension gebruik ervan in extensiemethoden.
Hier volgen veelvoorkomende toepassingen van this:
Als u leden wilt identificeren die zijn verborgen door vergelijkbare namen, bijvoorbeeld:
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; } }Als u een object als parameter wilt doorgeven aan andere methoden, bijvoorbeeld:
CalcTax(this);Als u indexeerfuncties wilt declareren, bijvoorbeeld:
public int this[int param] { get => array[param]; set => array[param] = value; }
Statische lidfuncties, omdat ze bestaan op klasseniveau en niet als onderdeel van een object, hebben this geen aanwijzer. Het is een fout om naar this te verwijzen in een statische methode.
In dit voorbeeld worden de parameters name en alias gebruikt om velden met dezelfde namen te verbergen. Het this trefwoord kwalificeren deze variabelen als Employee klasseleden. Het this trefwoord geeft ook het object op voor de methode CalcTax, die deel uitmaakt van een andere klasse.
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#-taalspecificatie
Zie de C#-taalspecificatievoor meer informatie. De taalspecificatie is de definitieve bron voor de C#-syntaxis en het gebruik.