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 kunci this mengacu pada instans kelas saat ini dan juga digunakan sebagai pengubah 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.
Berikut ini adalah penggunaan umum this:
Untuk mengidentifikasi anggota yang disembunyikan dengan nama serupa, misalnya:
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; } }Untuk meneruskan objek sebagai parameter ke metode lain, misalnya:
CalcTax(this);Untuk mendeklarasikan pengindeks , misalnya:
public int this[int param] { get => array[param]; set => array[param] = value; }
Fungsi anggota statis, karena ada di tingkat kelas dan bukan sebagai bagian dari objek, tidak memiliki this penunjuk. Merupakan kesalahan untuk merujuk this di dalam metode statis.
Dalam contoh ini, parameter name, dan alias menyembunyikan 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#.