Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A this kulcsszó az osztály aktuális példányára hivatkozik. A bővítménymetódus első paraméterének módosítójaként is szolgál.
Megjegyzés
Ez a cikk az aktuális tag fogadópéldányára this való hivatkozás használatát ismerteti. A bővítménymetelyekben való használatával kapcsolatos további információkért tekintse meg a kulcsszót extension .
A C# nyelv referenciadokumentuma a C# nyelv legújabb kiadású verzióját ismerteti. Emellett a közelgő nyelvi kiadás nyilvános előzetes verziójú funkcióinak kezdeti dokumentációját is tartalmazza.
A dokumentáció azonosítja azokat a funkciókat, amelyeket először a nyelv utolsó három verziójában vagy az aktuális nyilvános előzetes verziókban vezetnek be.
Jótanács
Ha meg szeretné tudni, hogy mikor jelent meg először egy funkció a C#-ban, tekintse meg a C# nyelvi verzióelőzményeiről szóló cikket.
A következők gyakori felhasználási módjai this :
A jogosult tagok hasonló nevek által elrejtve, például:
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; } }Objektum átadása paraméterként más metódusok számára.
CalcTax(this);Indexelők deklarálása, például:
public int this[int param] { get => array[param]; set => array[param] = value; }
A statikus tagfüggvények az osztály szintjén léteznek, és nem egy objektum részeként.
this Nincs mutatójuk. A statikus metódusra való this hivatkozás hiba.
Az alábbi példában a paraméterek namealias és az azonos nevű mezők elrejtése. A this kulcsszó osztálytagként Employee minősíti ezeket a változókat. A this kulcsszó a metódus CalcTaxobjektumát is megadja, amely egy másik osztályhoz tartozik.
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# nyelvspecifikáció
További információ: C# nyelvi specifikáció. A nyelvi specifikáció a C#-szintaxis és -használat végleges forrása.