Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C# Kata Kunci ini

C# Kata Kunci ini

Pada artikel ini, kita akan mempelajari tentang kata kunci ini dalam C# dengan bantuan contoh.

Dalam C#, this kata kunci mengacu pada instance kelas saat ini. Misalnya,

using System;
 
namespace ThisKeyword {
  class Test {

    int num;
    Test(int num) {
      // this.num refers to the instance field
      this.num = num;
      Console.WriteLine("object of this: " + this);
    }

    static void Main(string[] args) {

      Test t1 = new Test(4);
      Console.WriteLine("object of t1: " + t1);
      Console.ReadLine();
    }
  }
}

Keluaran

object of this: ThisKeyword.Test
object of t1: ThisKeyword.Test

Pada contoh di atas, kita telah membuat sebuah objek bernama t1 dari kelas Uji . Kami telah mencetak nama objek t1 dan this kata kunci kelas.

Di sini, kita bisa melihat nama keduanya t1 dan this adalah sama. Ini karena this kata kunci mengacu pada instance kelas saat ini yaitu t1 .


Berikut adalah beberapa kegunaan utama this kata kunci dalam C#.

C# ini dengan Variabel Nama yang Sama

Kita tidak dapat mendeklarasikan dua atau lebih variabel dengan nama yang sama di dalam suatu lingkup (kelas atau metode). Namun, variabel instan dan parameter mungkin memiliki nama yang sama. Misalnya,

using System;
 
namespace ThisKeyword {
  class Test {

    int num;
    Test(int num) {

      num = num;
    }

    static void Main(string[] args) {

      Test t1 = new Test(4);
      Console.WriteLine("value of num: " + t1.num);
      Console.ReadLine();
    }
  }
}

Keluaran

0

Dalam program di atas, variabel instan dan parameter memiliki nama yang sama:num . Kami telah melewati 4 sebagai nilai bagi konstruktor.

Namun, kami mendapatkan 0 sebagai keluaran. Ini karena C# menjadi bingung karena nama variabel instance dan parameternya sama.

Kami dapat mengatasi masalah ini dengan menggunakan this .

Contoh:ini dengan Variabel Nama yang Sama

using System;
 
namespace ThisKeyword {
  class Test {

    int num;
    Test(int num) {
      
      // this.num refers to the instance field
      this.num = num;
    }

    static void Main(string[] args) {

      Test t1 = new Test(4);
      Console.WriteLine("value of num: " +t1.num);
      Console.ReadLine();
    }
  }
}

Keluaran

value of num: 4

Sekarang, kita mendapatkan output yang diharapkan yaitu 4 . Itu karena this.num mengacu pada variabel instan dari kelas.

Jadi, tidak ada kebingungan antara nama variabel instance dan parameter.


Memanggil Konstruktor dari Kelas yang Sama Menggunakan ini

Saat bekerja dengan overloading konstruktor, kita mungkin harus memanggil satu konstruktor dari konstruktor lain. Dalam hal ini, kita dapat menggunakan this kata kunci. Misalnya,

using System;
 
namespace ThisKeyword {
  class Test {
    
    Test(int num1, int num2) {

      Console.WriteLine("Constructor with two parameter");
    }
    
    // invokes the constructor with 2 parameters
    Test(int num) : this(33, 22) {

      Console.WriteLine("Constructor with one parameter");
    }

    public static void Main(String[] args) {

      Test t1 = new Test(11); 
      Console.ReadLine();   
    }
  }
}

Keluaran

Constructor with two parameter
Constructor with one parameter

Dalam contoh di atas, kami telah menggunakan : diikuti oleh this kata kunci untuk memanggil konstruktor Test(int num1, num2) dari konstruktor Test(int num) .

Saat kita memanggil Test(int num) konstruktor Test(int num1, int num2) konstruktor dijalankan terlebih dahulu.

Catatan :Memanggil satu konstruktor dari konstruktor lain dikenal sebagai rantai konstruktor.


C# ini sebagai argumen objek

Kita dapat menggunakan this kata kunci untuk meneruskan objek saat ini sebagai argumen ke metode. Misalnya,

using System;
 
namespace ThisKeyword {
  class Test {
    int num1;
    int num2;
      
    Test() {
      num1 = 22;
      num2 = 33;
    }

    // method that accepts this as argument   
    void passParameter(Test t1) {
      Console.WriteLine("num1: " + num1);
      Console.WriteLine("num2: " + num2);
    }

    void display() {
      // passing this as a parameter
      passParameter(this);
    }
  
    public static void Main(String[] args) {
      Test t1 = new Test();
      t1.display();
      Console.ReadLine();
    }
  }
}

Keluaran

num1: 22
num2: 33

Dalam program di atas, kami memiliki metode passParameter() . Ia menerima objek kelas sebagai argumen.

passParameter(this);

Di sini, kami telah melewati this ke passParameter() metode. Sebagai this mengacu pada instance kelas, kami dapat mengakses nilai num1 dan num2 .


ini untuk mendeklarasikan pengindeks C#

Pengindeks memungkinkan objek kelas untuk diindeks seperti array. Kami menggunakan kata kunci ini untuk mendeklarasikan pengindeks di C#. Misalnya,

using System;
namespace ThisKeyword {
      
  class Student {
      
    private string[] name = new string[3];
  
    // declaring an indexer
    public string this[int index] {

      // returns value of array element
      get {
        return name[index];
      }
      
      // sets value of array element
      set { 
        name[index] = value;
      }
    }
  }
  
  class Program {
  
    public static void Main() {
      Student s1 = new Student();
      s1[0] = "Ram";
      s1[1] = "Shyam";
      s1[2] = "Gopal";

      for (int i = 0; i < 3; i++) {

        Console.WriteLine(s1[i] + " ");
      }
    }
  }
}

Keluaran

Ram
Shyam
Gopal

Dalam program di atas, kami telah membuat pengindeks menggunakan this kata kunci.

Array nama[] bersifat pribadi. Jadi, kami tidak dapat mengaksesnya dari Program kelas.

Sekarang, untuk mengakses dan mengatur nilai array, kita menggunakan pengindeks.

Student s1 = new Student();
s1[0] = "Ram";
s1[1] = "Shyam";
s1[2] = "Gopal";

Seperti yang telah kita gunakan this untuk membuat pengindeks, kita harus menggunakan objek Student kelas untuk mengakses pengindeks. Untuk mengetahui lebih banyak tentang pengindeks, kunjungi pengindeks C#.


Bahasa C

  1. C# Kata Kunci statis
  2. Kata Kunci Global Python
  3. Jawa Kata Kunci ini
  4. Kata kunci terakhir Java
  5. Uji sensor DS18B20
  6. Tutorial Kerangka Kerja Otomasi Tes UI Berkode
  7. Kotak Uji Sensor Turck TB3-CP80
  8. Probe Uji Magnetik Pomona MP1
  9. Tes COVID-19 Berbasis Ponsel Cerdas
  10. Uji Probe Terbang (FPT):Ketahui Tentang Teknik Pengujian PCB Ini