Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Klíčové this slovo odkazuje na aktuální instanci třídy. Slouží také jako modifikátor pro první parametr metody rozšíření.
Poznámka:
Tento článek popisuje použití this odkazu na instanci příjemce v aktuálním členu. Další informace o jeho použití v rozšiřujících metodách naleznete v klíčovém slově extension .
Referenční dokumentace jazyka C# dokumentuje naposledy vydané verze jazyka C#. Obsahuje také počáteční dokumentaci k funkcím ve verzi Public Preview pro nadcházející jazykovou verzi.
Dokumentace identifikuje všechny funkce, které byly poprvé představeny v posledních třech verzích jazyka nebo v aktuálních verzích Public Preview.
Návod
Informace o tom, kdy byla funkce poprvé představena v jazyce C#, najdete v článku o historii verzí jazyka C#.
Mezi běžné použití this patří:
Opravňující členy skryté podobnými názvy, například:
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; } }Předání objektu jako parametru jiným metodám
CalcTax(this);Deklarování indexerů, například:
public int this[int param] { get => array[param]; set => array[param] = value; }
Statické členské funkce existují na úrovni třídy, nikoli jako součást objektu. Nemají this ukazatel. Odkazující this na statickou metodu je chyba.
V následujícím příkladu parametry name a alias skryjte pole se stejnými názvy. Klíčové this slovo kvalifikuje tyto proměnné jako Employee členy třídy. Klíčové this slovo také určuje objekt pro metodu CalcTax, která patří do jiné třídy.
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
*/
Specifikace jazyka C#
Další informace najdete ve specifikaci jazyka C# . Specifikace jazyka je konečným zdrojem syntaxe a použití jazyka C#.