En C#, le mot-clé 'this' est utilisé pour faire référence aux membres d'instance de la classe actuelle à partir d'une méthode d'instance ou d'un constructeur. Il supprime l'ambiguïté de nom entre les paramètres de méthode et les variables d'instance s'ils portent le même nom. Voici quelques utilisations du mot clé « this » en C# :
Syntaxe avec explication :
La syntaxe d'utilisation du mot-clé « this » en C# est la suivante :
this.instance_variable
Dans la syntaxe ci-dessus, « this » est le mot-clé et instance_variable est le nom de la variable d'instance de la classe.
Pour passer l'objet de la même classe en paramètre à une méthode, la syntaxe sera :
method_name(this);
Dans la syntaxe ci-dessus, le mot-clé 'this' fait référence à l'objet de la classe actuelle et method_name est le nom de la méthode à appeler.
Le mot-clé « this » en C# est utilisé comme pointeur « this » pour une classe. Il est utilisé pour représenter l’instance actuelle d’une classe. En C#, le pointeur « this » ne fonctionne que pour les membres non statiques de la classe car « this » fonctionne sur l'instance actuelle et les membres non statiques sont accessibles par l'instance de la classe. Le pointeur 'this' ne fonctionne pas pour les variables statiques et les fonctions membres car nous n'avons besoin d'aucune instance pour y accéder et elles existent au niveau de la classe.
Dans certains cas, il n'est pas nécessaire d'utiliser explicitement le mot-clé « ce ». Comme lorsque nous appelons la méthode de la classe actuelle, nous utilisons this.method_name() à la place de cela, nous pouvons appeler directement la méthode sans utiliser le mot-clé 'this' et dans cette situation, le mot-clé 'this' sera ajouté automatiquement par le compilateur. .
Comprenons le point ci-dessus à l'aide de la représentation picturale comme indiqué ci-dessous :
Il existe de nombreuses façons d'utiliser le mot-clé « this » en C# :
Il est utilisé pour faire référence aux variables et aux fonctions membres de l'instance actuelle.
Code :
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()); } } }
Sortie :
Nous pouvons utiliser le mot-clé 'this' pour appeler la méthode dans la même classe.
Code :
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(); } } }
Sortie :
Nous pouvons utiliser le mot-clé 'this' pour appeler un constructeur dans la même classe.
Code :
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(); } } }
Sortie :
Si une méthode prend un objet de la même classe comme paramètre, alors le mot-clé « this » peut être utilisé comme paramètre lors de l'appel de cette méthode.
De la même manière, une méthode peut renvoyer l'objet de la même classe en utilisant le mot-clé 'this'.
Code :
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); } } }
Sortie :
En dehors de ces utilisations, une utilisation importante du mot-clé 'this' est que nous pouvons l'utiliser pour déclarer des indexeurs.
Code :
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"); } } } }
Sortie :
Le mot-clé « this » peut également être utilisé pour déclarer des méthodes d’extension.
Code :
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"); } } }
Sortie :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!