Le mot this

Signaler
Messages postés
345
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 avril 2010
-
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009
-
    Bonjour tous le monde, j'ai un question à poser concernant le mot clé this :

Dans une classe A j'ai une méthode qui prend en parmatère un objet de type A est ce que je peux mettre dans le paramètre le mot clé this ?

Merci

3 réponses

Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009

Je suis pas sûr d'avoir bien compris mais c'est déjà un peu étrange une classe qui doit se passer en paramètre, dans 90 % des cas c'est mal réfléchi. (un objet de type A = un objet de la classe A ?). Le mot clé this est peu utilisé en C#, utilisé pour passe l'objet dnas lequel on est par exemple une Form à une fonction. Si j'ai répondu à coté hésite pas à mettre un exemple ;)
Messages postés
345
Date d'inscription
jeudi 15 février 2007
Statut
Membre
Dernière intervention
24 avril 2010

Je voulais dire que j'ai une méthode dans une classe A qui prend un paramètre un objet de type A :
exemple :

Class A
{
    private int x;
    private int y;

A(int x,int y)
{this.x=x;
this.y=y;
}
// Méthode
public void fn()
{
// ICI j'appele un méthode qui prend en paramètre A a  fn (A a);

    fonction_appelé (this);
}
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009

Mais je comprend pas l'interet de ce que tu veux faire.
La classe à déjà accès à x et y pas besoin de lui passer à fonction_appele() à mois que ce soit une methode d'une autre classe ...
Voici le code que tu m'as donné un peu modifié dis moi si tu comprend mieux :

class

A
{
  
private
int _nX;

   private
int _nY;

   A(
int anX,
int anY)
   {
      //le this est inutile si on nomme "mieux" ces varibales
      _nX
=anX;
      _nY
=anY;
   }

   // Méthode
   public
void fn()
  {
     
// Pas besoin du this c'est une méthode de ma classe
      fonction_appele (
);

      // c'est une autre classe qui fait le traitement alors avec le this c'est bon je passe bien l'objet en cours.
      CMaClasseDeTraitment loClasseDeTraitement = new CMaClasseDeTraitment ();
      loClasseDeTraitement.MonTraitement(this); // par contre cela doit être une copie de l'objet (là je ne suis pas sûr) il faut peut être faire un loClasseDeTraitement.MonTraitement(ref this);  mais je ne suis pas sûr que ca marche, et je n'aime pas trop  ca revient un peu à passer toute la table quand quelqu'un de demande de te passer le sel ...

   }

   private void fonction_appele()
   {
        // ICI j'ai accès à  _nX et _nY
   }

}
/html>