ini (Referensi C#)

Kata kunci this tersebut mengacu pada instans kelas saat ini dan juga digunakan sebagai pengubah parameter pertama metode ekstensi.

Catatan

Artikel ini membahas penggunaan this dengan instans kelas. Untuk informasi selengkapnya tentang penggunaannya dalam metode ekstensi, lihat Metode Ekstensi.

Berikut ini adalah penggunaan umum dari this:

  • Untuk memenuhi syarat 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 { return array[param]; }
        set { array[param] = value; }
    }
    

Fungsi anggota statik, karena ada di tingkat kelas dan bukan sebagai bagian dari objek, tidak memiliki pointer this. Ini adalah kesalahan untuk merujuk pada this di metode statik.

Contoh

Dalam contoh ini, this digunakan untuk memenuhi syarat anggota kelas Employee, name dan alias, yang disembunyikan dengan nama yang sama. Ini juga digunakan untuk meneruskan objek ke metode CalcTax, yang termasuk dalam kelas lain.

class Employee
{
    private string name;
    private string alias;
    private decimal salary = 3000.00m;

    // 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: {0}\nAlias: {1}", name, alias);
        // Passing the object to the CalcTax method by using this:
        Console.WriteLine("Taxes: {0:C}", Tax.CalcTax(this));
    }

    public decimal Salary
    {
        get { return salary; }
    }
}

class Tax
{
    public static decimal CalcTax(Employee E)
    {
        return 0.08m * E.Salary;
    }
}

class MainClass
{
    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#.

Lihat juga