Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kata this kunci mengacu pada instans kelas saat ini. Ini juga berfungsi sebagai pengubah untuk parameter pertama metode ekstensi.
Nota
Artikel ini membahas penggunaan this untuk merujuk ke instans penerima di anggota saat ini. Untuk informasi selengkapnya tentang penggunaannya dalam metode ekstensi, lihat extension kata kunci.
Referensi bahasa C# mendokumentasikan versi bahasa C# yang paling baru dirilis. Ini juga berisi dokumentasi awal untuk fitur dalam pratinjau publik untuk rilis bahasa yang akan datang.
Dokumentasi mengidentifikasi fitur apa pun yang pertama kali diperkenalkan dalam tiga versi terakhir bahasa atau dalam pratinjau publik saat ini.
Petunjuk / Saran
Untuk menemukan kapan fitur pertama kali diperkenalkan di C#, lihat artikel tentang riwayat versi bahasa C#.
this Penggunaan umum meliputi:
Anggota yang memenuhi syarat disembunyikan dengan nama serupa, seperti:
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; } }Meneruskan objek sebagai parameter ke metode lain.
CalcTax(this);Mendeklarasikan pengindeks, seperti:
public int this[int param] { get => array[param]; set => array[param] = value; }
Fungsi anggota statis ada di tingkat kelas dan bukan sebagai bagian dari objek. Mereka tidak memiliki this pointer.
this Mengacu pada metode statis adalah kesalahan.
Dalam contoh berikut, parameter name dan alias sembunyikan bidang dengan nama yang sama. Kata this kunci menentukan variabel tersebut sebagai anggota kelas Employee. Kata this kunci juga menentukan objek untuk metode CalcTax, yang termasuk dalam kelas lain.
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
*/
Spesifikasi bahasa C#
Untuk informasi selengkapnya, lihat Spesifikasi Bahasa C#. Spesifikasi bahasa adalah sumber definitif untuk sintaks dan penggunaan C#.