Le mot this

mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010 - 6 avril 2008 à 18:34
oximoron Messages postés 149 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 30 janvier 2009 - 6 avril 2008 à 21:57
    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

oximoron Messages postés 149 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 30 janvier 2009
6 avril 2008 à 19:19
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 ;)
0
mimosa803 Messages postés 345 Date d'inscription jeudi 15 février 2007 Statut Membre Dernière intervention 24 avril 2010
6 avril 2008 à 21:33
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);
}
0
oximoron Messages postés 149 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 30 janvier 2009
6 avril 2008 à 21:57
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>
0