IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

les classes et c# .. quand utiliser le "this" ?


Sujet :

Windows

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut les classes et c# .. quand utiliser le "this" ?
    Salut, je suis nouveau dans c#, j'ai appris le c++ 6.0 et travaillé depuis 4 ans avec php4 et puis php5. Je début un nouveau projet et jai décidé d'y aller avec c# histoire de connaitre un nouveau language. Étant familier avec php et c++, il n'y a pas trop trop de difficulté... par contre je n'arrive pas à saisir quand est-ce qu'il faut utiliser le mot réservé "this" dans les classes.

    En php c'est très simple, il faut toujours l'utiliser pour les propriété des classes, mais voilà que tous les exemples en c# que je regarde ce n'est pas très clair....
    Ex.:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public class Test
    {
    	private string sTest;
    	public void Test(string sTest)
    	{
    		//jusque là ca va... dans les constructeurs jai vu presque juste des this. avant le nom de la variable.
    		this.sTest = sTest;
    	}
    
    	//mais voilà que je comprends pas
    	public void Print()
    	{
    		Console.Write(sTest);
    		//Normallement si c'était pareille comme en php, j'aurais fait..
    		Console.Write(this.sTest); // fonctionne également d'ailleur...
    	}
    }
    Alors j'aimerais savoir quand utiliser et ne pas utiliser le "this" dans les classes...

    D'ailleur... je pose cette question parce qu'il m'est arrivé d'affecter une donnée membre privé dans une méthodes... sans utiliser le mot "this." parce que j'avais remarquer qu'il n'était jamais utilisé.... et lorsque j'étais rendu dans un autre méthode, celle que j'avais affecté n'avait pas la bonne valeur, et qu'en mettant "this." lors de l'affection, elle était alors correct dans ma seconde méthode.

    Merci de m'éclaircir....

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par jgbid123
    Alors j'aimerais savoir quand utiliser et ne pas utiliser le "this" dans les classes...
    D'ailleur... je pose cette question parce qu'il m'est arrivé d'affecter une donnée membre privé dans une méthodes... sans utiliser le mot "this." parce que
    Oui c'est possible d'affecter un membre privé mais seulement dans le corps d'une méthode d'une classe...

    et lorsque j'étais rendu dans un autre méthode, celle que j'avais affecté n'avait pas la bonne valeur,
    je pense que tu as voulu affecter 2 membres portant le même nom mais appartenant à 2 classes différentes

    Citation Envoyé par jgbid123
    Alors j'aimerais savoir quand utiliser et ne pas utiliser le "this" dans les classes...
    Tout dépend des cas ; this est l'opérateur intrinsèque d'une classe ( je ne sais pas s'il faut employer cet adjectif ) .
    this définit une instance de la classe entière ses méthodes et attributs
    this ne peut être déclaré qu'à "l'intérieur" d'une classe par exemple dans le corps d'une méthode ou bien passé en paramêtre
    Sinon il ya un forum C# spécifique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void Print()
    	{
    		Console.Write(sTest);
    		//Normallement si c'était pareille comme en php, j'aurais fait..
    		Console.Write(this.sTest); // fonctionne également d'ailleur...
    	}
    En théorie Console.Write va faire la même chose dans ce cas là sTest=this.sTest.
    Il n'ya pas besoin d'appeler this; en Php il faut l'appeler parce que je pense qu'il y a une seule classe unique qui englobe des sous-classes.
    Contrairement à C# ou des classes peuvent cohabiter

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    ok bref... pour être certain d'utiliser la bonne données membres... n'est-ce pas mieux tout simplement de toujours utiliser le "this" dans les méthodes de la classe ?

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Mat.M
    Sinon il ya un forum C# spécifique
    c'est quoi l'adresse... je ne lai pas trouvé dans la liste des forums

    jai vu c/c++ java delphi.. mais pas c#
    j'imagine que c'est dotnet ?
    http://www.developpez.net/forums/forumdisplay.php?f=13

Discussions similaires

  1. [Taglibs] Utiliser les classes css ?
    Par PeteMitchell dans le forum Struts 1
    Réponses: 4
    Dernier message: 05/05/2007, 01h31
  2. quand utiliser les modules de classe
    Par borislotte dans le forum Access
    Réponses: 3
    Dernier message: 02/03/2007, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo