Delen via


deze (C#-verwijzing)

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 van this klasse-exemplaren besproken. Zie Extensiemethoden voor meer informatie over het gebruik ervan in extensiemethoden.

Hier volgen veelvoorkomende toepassingen van this:

  • Als u leden wilt kwalificeren 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 { return 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 waarnaar wordt verwezen this in een statische methode.

Opmerking

In dit voorbeeld this wordt gebruikt om de Employee klasseleden name in aanmerking te laten komen en alias, die zijn verborgen door vergelijkbare namen. Het wordt ook gebruikt om een object door te geven aan de methode CalcTax, die deel uitmaakt van een andere klasse.

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#-taalspecificatie

Zie de C#-taalspecificatie voor meer informatie. De taalspecificatie is de definitieve bron voor de C#-syntaxis en het gebruik.

Zie ook