Rumah > Artikel > pembangunan bahagian belakang > Kata kunci ini dalam C#
Dalam C#, kata kunci 'ini' digunakan untuk merujuk kepada ahli contoh kelas semasa dari dalam kaedah contoh atau pembina. Ia mengalih keluar kekaburan nama antara parameter kaedah dan pembolehubah contoh jika mereka mempunyai nama yang sama. Berikut ialah beberapa penggunaan kata kunci 'ini' dalam C#:
Sintaks dengan Penjelasan:
Sintaks menggunakan kata kunci 'ini' dalam C# adalah seperti berikut:
this.instance_variable
Dalam sintaks di atas 'ini' ialah kata kunci dan instance_variable ialah nama pembolehubah instance kelas.
Untuk menghantar objek kelas yang sama sebagai parameter kepada kaedah, sintaksnya ialah:
method_name(this);
Dalam sintaks di atas, kata kunci 'ini' merujuk kepada objek kelas semasa dan method_name ialah nama kaedah yang akan dipanggil.
kata kunci 'ini' dalam C# digunakan sebagai penunjuk 'ini' untuk kelas. Ia digunakan untuk mewakili contoh semasa kelas. Dalam C#, penunjuk 'ini' hanya berfungsi untuk ahli kelas bukan statik kerana 'ini' berfungsi pada tika semasa dan ahli bukan statik boleh diakses oleh tika kelas. penunjuk 'ini' tidak berfungsi untuk pembolehubah statik dan fungsi ahli kerana kita tidak memerlukan sebarang contoh untuk mengaksesnya dan ia wujud pada peringkat kelas.
Dalam sesetengah kes, anda tidak perlu menggunakan kata kunci 'ini' secara eksplisit. Seperti apabila kita memanggil kaedah kelas semasa, kita menggunakan this.method_name() dan bukannya ini, kita boleh terus memanggil kaedah tanpa menggunakan kata kunci 'ini' dan dalam keadaan itu, kata kunci 'ini' akan ditambah secara automatik oleh pengkompil. .
Mari kita fahami perkara di atas dengan bantuan perwakilan bergambar seperti yang ditunjukkan di bawah:
Terdapat banyak cara menggunakan kata kunci 'ini' dalam C#:
Ia digunakan untuk merujuk pembolehubah dan fungsi ahli bagi tika semasa.
Kod:
using System; namespace keywords { class ThisDemo { //instance variable public string Message; public string GetMessage() { return Message; } public void SetMessage(string Message) { //"this.Message" refers to instance variable (class member) this.Message = Message; } } public class program { public static void Main() { ThisDemo obj = new ThisDemo(); obj.SetMessage("Hello world!"); Console.WriteLine(obj.GetMessage()); } } }
Output:
Kita boleh menggunakan kata kunci ‘ini’ untuk memanggil kaedah dalam kelas yang sama.
Kod:
using System; namespace keywords { public class Employee { void displaySalary() { //calling displayDetails() method of same class this.displayDetails(); Console.WriteLine("Salary: Rs.50000"); } void displayDetails() { Console.WriteLine("Name: ABC"); Console.WriteLine("ID: 123ABC"); } public static void Main(String []args) { Employee emp = new Employee(); emp.displaySalary(); } } }
Output:
Kita boleh menggunakan kata kunci ‘ini’ untuk memanggil pembina dalam kelas yang sama.
Kod:
using System; namespace keywords { class Student { // calling another constructor of the same class public Student() : this("ABC") { Console.WriteLine("Parameterless Constructer of Student class"); } //parameterized constructor public Student(string Name) { Console.WriteLine("Parameterized constructor of Student class"); } public void display() { Console.WriteLine("display() method of Student class"); } } public class program { public static void Main() { Student stud = new Student(); stud.display(); } } }
Output:
Jika kaedah mengambil objek kelas yang sama dengan parameter maka kata kunci ‘ini’ boleh digunakan sebagai parameter semasa memanggil kaedah itu.
Dengan cara yang sama, kaedah boleh mengembalikan objek kelas yang sama dengan menggunakan kata kunci 'ini'.
Kod:
using System; namespace keywords { public class Student { double marks; //method taking object of same class as parameter void display(Student stud) { Console.WriteLine("Marks of student: "+stud.marks); } //method returning object of same class Student addGradeMarks(double marks) { this.marks = marks + 5; display(this); return this; } public static void Main(String[] args) { Student stud = new Student(); stud = stud.addGradeMarks(85); } } }
Output:
Selain daripada penggunaan ini, penggunaan penting kata kunci 'ini' ialah kita boleh menggunakannya untuk mengisytiharkan pengindeks.
Kod:
using System; namespace keywords { public class World { private string[] continents = new string[7]; //declaring an indexer public string this[int index] { get { return continents[index]; } set { continents[index] = value; } } } public class ThisDemo { public static void Main() { World world = new World(); world[0] = "Asia"; world[1] = "Africa"; world[2] = "North America"; world[3] = "South America"; world[4] = "Antarctica"; world[5] = "Europe"; world[6] = "Australia"; for (int i = 0; i < 7; i++) { Console.Write(world[i]); Console.Write("\n"); } } } }
Output:
kata kunci ‘ini’ juga boleh digunakan untuk mengisytiharkan kaedah sambungan.
Kod:
using System; namespace keywords { //Class1 contains three methods; we will add two more methods in it //without re-compiling it class Class1 { public void Method1() { Console.WriteLine("Method1"); } public void Method2() { Console.WriteLine("Method2"); } public void Method3() { Console.WriteLine("Method3"); } } // Class2 contains Method4 and Method5 methods //which we want to add in Class1 class static class Class2 { public static void Method4(this Class1 class1) { Console.WriteLine("Method4"); } public static void Method5(this Class1 class1, string str) { Console.WriteLine(str); } } public class ThisDemo { public static void Main(string[] args) { Class1 class1 = new Class1(); class1.Method1(); class1.Method2(); class1.Method3(); class1.Method4(); class1.Method5("Method5"); } } }
Output:
Atas ialah kandungan terperinci Kata kunci ini dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!