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

Menguasai Kata Kunci this C#

Menguasai Kata Kunci this C#

Jelajahi kata kunci this C# yang serbaguna melalui penjelasan ringkas dan contoh kode dunia nyata.

Di C#, this merujuk pada instance saat ini dari sebuah kelas. Ini sangat penting untuk membedakan antara anggota instance dan parameter metode, memanggil konstruktor yang dioverload, melewati objek saat ini ke metode lain, dan mendeklarasikan indexer.

using System; namespace ThisKeyword { class Test { int num; Test(int num) { // this.num merujuk ke field instance 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(); } } }

Output

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

Kedua t1 dan this merujuk pada instance yang sama; jadi representasi string mereka cocok.


Membedakan Variabel dengan Nama Sama

Field instance dan parameter dapat berbagi nama, tetapi tanpa this kompiler memperlakukan referensi sebagai parameter, sehingga field tidak tersentuh.

using System; namespace ThisKeyword { class Test { int num; Test(int num) { num = num; // menugaskan parameter ke dirinya sendiri, field tetap default (0) } static void Main(string[] args) { Test t1 = new Test(4); Console.WriteLine("value of num: " + t1.num); Console.ReadLine(); } } }

Output

0

Outputnya adalah nol karena penugasan tidak mempengaruhi field. Menggunakan this menyelesaikan ambigu:

using System; namespace ThisKeyword { class Test { int num; Test(int num) { // this.num merujuk ke field instance this.num = num; } static void Main(string[] args) { Test t1 = new Test(4); Console.WriteLine("value of num: " + t1.num); Console.ReadLine(); } } }

Output

value of num: 4

Chaining Konstruktor dengan this

Saat kelas menawarkan beberapa konstruktor, satu dapat memanggil yang lain untuk memusatkan logika inisialisasi. Ini dicapai dengan kata kunci this setelah titik dua dalam tanda tangan konstruktor.

using System; namespace ThisKeyword { class Test { Test(int num1, int num2) { Console.WriteLine("Constructor with two parameters"); } // memanggil konstruktor dua parameter 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(); } } }

Output

Constructor with two parameters Constructor with one parameter

Konstruktor satu parameter pertama mengeksekusi konstruktor dua parameter, kemudian melanjutkan dengan tubuhnya sendiri. Pola ini, dikenal sebagai chaining konstruktor, menjaga logika inisialisasi tetap DRY.


Melewati Instance Saat Ini ke Metode

Kadang sebuah metode perlu beroperasi pada objek yang memanggilnya. Menggunakan this sebagai argumen membuat niatnya eksplisit.

using System; namespace ThisKeyword { class Test { int num1; int num2; Test() { num1 = 22; num2 = 33; } // metode yang menerima instance Test void PassParameter(Test t) { Console.WriteLine("num1: " + t.num1); Console.WriteLine("num2: " + t.num2); } void Display() { // melewati instance saat ini PassParameter(this); } public static void Main(string[] args) { Test t1 = new Test(); t1.Display(); Console.ReadLine(); } } }

Output

num1: 22 num2: 33

Karena this mewakili instance pemanggil, metode dapat dengan aman mengakses field privatnya.


Mendeklarasikan Indexer dengan this

Indexer memungkinkan objek diindeks seperti array. Kata kunci this mendeklarasikan tanda tangan indexer.

using System; namespace ThisKeyword { class Student { private string[] names = new string[3]; // Deklarasi Indexer public string this[int index] { get { return names[index]; } set { names[index] = value; } } } class Program { public static void Main() { Student s = new Student(); s[0] = "Ram"; s[1] = "Shyam"; s[2] = "Gopal"; for (int i = 0; i < 3; i++) { Console.WriteLine(s[i]); } } } }

Output

Ram Shyam Gopal

Array privat names diakses melalui indexer, menjaga enkapsulasi tetap utuh sambil menawarkan sintaks seperti array.

Untuk menyelami lebih dalam tentang indexer, lihat dokumentasi resmi Microsoft: C# Indexer.

Bahasa C

  1. Kata Kunci Static C#: Menguasai Variabel, Metode, dan Kelas Statis
  2. Menguasai Kata Kunci Global Python: Kapan dan Cara Menggunakannya
  3. Kata Kunci Java this: Penggunaan Praktis, Konstruktor, dan Lainnya
  4. Memahami Kata Kunci final Java: Variabel, Metode, dan Kelas
  5. Menguji Sensor Suhu DS18B20 pada Raspberry Pi
  6. Framework Otomatisasi Uji Coded UI: Panduan Lengkap untuk Pemula
  7. Turck TB3-CP80: Kotak Pengujian Sensor Presisi untuk Sensor Induktif, Magnetik, Kapasitif, dan Fotoelektrik
  8. Pomona MP1 Magnetic Test Probe – Jack Safety 4mm Sudut Suku Lingkaran untuk Diagnostik Industri Presisi
  9. Tes COVID-19 Berbasis Ponsel Cepat Hasil 10 Menit, Akurasi Tinggi
  10. Tes Flying Probe (FPT): Panduan Profesional Verifikasi Fungsi PCB yang Terpercaya