Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Le this mot clé fait référence à l’instance actuelle de la classe. Il sert également de modificateur pour le premier paramètre d’une méthode d’extension.
Remarque
Cet article décrit l’utilisation de this l’instance de récepteur dans le membre actuel. Pour plus d’informations sur son utilisation dans les méthodes d’extension, consultez le extension mot clé.
La documentation de référence du langage C# décrit la version la plus récente du langage C#. Il contient également la documentation initiale des fonctionnalités dans les préversions publiques pour la prochaine version du langage.
La documentation identifie toute fonctionnalité introduite en premier dans les trois dernières versions de la langue ou dans les préversions publiques actuelles.
Conseil / Astuce
Pour savoir quand une fonctionnalité a été introduite en C#, consultez l’article sur l’historique des versions du langage C#.
Utilisations courantes des this éléments suivants :
Membres éligibles masqués par des noms similaires, tels que :
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; } }Passage d’un objet en tant que paramètre à d’autres méthodes.
CalcTax(this);Déclaration d’indexeurs, tels que :
public int this[int param] { get => array[param]; set => array[param] = value; }
Les fonctions membres statiques existent au niveau de la classe et non dans le cadre d’un objet. Ils n’ont pas de this pointeur. La référence dans this une méthode statique est une erreur.
Dans l’exemple suivant, les paramètres name et alias masquent les champs portant les mêmes noms. Le this mot clé qualifie ces variables en tant que Employee membres de classe. Le this mot clé spécifie également l’objet de la méthode CalcTax, qui appartient à une autre classe.
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
*/
Spécification du langage C#
Pour plus d'informations, voir la spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.