Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

C# ce mot-clé

C# ce mot-clé

Dans cet article, nous allons découvrir ce mot-clé en C# à l'aide d'exemples.

En C#, this Le mot-clé fait référence à l'instance actuelle d'une classe. Par exemple,

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();
    }
  }
}

Sortie

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

Dans l'exemple ci-dessus, nous avons créé un objet nommé t1 de la classe Test . Nous avons imprimé le nom de l'objet t1 et this mot clé de la classe.

Ici, nous pouvons voir le nom des deux t1 et this est le même. C'est parce que this le mot clé fait référence à l'instance actuelle de la classe qui est t1 .

Voici quelques-unes des principales utilisations de this mot-clé en C#.

C# ceci avec des variables de même nom

Nous ne pouvons pas déclarer deux variables ou plus portant le même nom dans une portée (classe ou méthode). Cependant, les variables d'instance et les paramètres peuvent avoir le même nom. Par exemple,

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();
    }
  }
}

Sortie

0

Dans le programme ci-dessus, la variable d'instance et le paramètre portent le même nom :num . Nous avons dépassé 4 comme valeur pour le constructeur.

Cependant, nous obtenons 0 comme sortie. C'est parce que le C # est confus car les noms de la variable d'instance et du paramètre sont les mêmes.

Nous pouvons résoudre ce problème en utilisant this .

Exemple :ceci avec des variables de même nom

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();
    }
  }
}

Sortie

value of num: 4

Maintenant, nous obtenons la sortie attendue qui est 4 . C'est parce que this.num fait référence à la variable d'instance de la classe.

Ainsi, il n'y a pas de confusion entre les noms de la variable d'instance et du paramètre.

Invoquer le constructeur de la même classe en utilisant ceci

Lorsque vous travaillez avec la surcharge de constructeurs, nous devrons peut-être invoquer un constructeur à partir d'un autre constructeur. Dans ce cas, nous pouvons utiliser this mot-clé. Par exemple,

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();   
    }
  }
}

Sortie

Constructor with two parameter
Constructor with one parameter

Dans l'exemple ci-dessus, nous avons utilisé : suivi de this mot clé pour appeler le constructeur Test(int num1, num2) du constructeur Test(int num) .

Lorsque nous appelons le Test(int num) constructeur le Test(int num1, int num2) le constructeur s'exécute en premier.

Remarque :L'appel d'un constructeur à partir d'un autre constructeur est appelé chaînage de constructeurs.

C# this comme argument d'objet

Nous pouvons utiliser this mot-clé pour passer l'objet courant comme argument à une méthode. Par exemple,

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();
    }
  }
}

Sortie

num1: 22
num2: 33

Dans le programme ci-dessus, nous avons une méthode passParameter() . Il accepte l'objet de la classe comme argument.

passParameter(this);

Ici, nous avons dépassé this au passParameter() méthode. Comme this fait référence à l'instance de la classe, nous pouvons accéder à la valeur de num1 et num2 .

ceci pour déclarer un indexeur C#

Les indexeurs permettent aux objets d'une classe d'être indexés comme des tableaux. Nous utilisons ce mot-clé pour déclarer un indexeur en C#. Par exemple,

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] + " ");
      }
    }
  }
}

Sortie

Ram
Shyam
Gopal

Dans le programme ci-dessus, nous avons créé un indexeur en utilisant this mot-clé.

Le tableau nom[] est privé. Donc, nous ne pouvons pas y accéder depuis le Programme classe.

Maintenant, pour accéder et définir la valeur du tableau, nous utilisons un indexeur.

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

Comme nous avons utilisé this pour créer un indexeur, il faut utiliser l'objet de l'Student classe pour accéder à l'indexeur. Pour en savoir plus sur l'indexeur, visitez l'indexeur C#.


Langue C

  1. Mot-clé statique C#
  2. Mot-clé global Python
  3. Java ce mot clé
  4. Mot-clé Java final
  5. Test du capteur DS18B20
  6. Tutoriel sur le cadre d'automatisation des tests codés de l'interface utilisateur
  7. Boîtier de test de capteur Turck TB3-CP80
  8. Sondes de test magnétiques Pomona MP1
  9. Test COVID-19 sur smartphone