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 Forms Discussion :

[C#.Net] Une méthode pour débugger ?


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 359
    Points : 141
    Points
    141
    Par défaut [C#.Net] Une méthode pour débugger ?
    Bonjour,

    Actuellement j'utilise une constante static (bool) pour faire des tests sur mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public const bool test = false;//true pour les tests
    Ainsi je peux faire un test dans mon code grace à une condition du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (maClassStatic.test)
    {
    des trucs de test (généralement, une boucle moins importante pour aller plus vite, etc...)
    }
    Maintenant, je crois que .Net peut proposer de faire la même chose plus proprement, non ? Du genre un code qui est présent dans le débug mode, mais disparait dans la release, ça existe ?

    Merci

  2. #2
    Membre éprouvé Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Points : 958
    Points
    958
    Par défaut
    #if DEBUG
    Console.WriteLine("Debug version");
    #endif

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    regarde du cote de #define

    et ensuite, #ifdef ....

    Sinon,dans les options d'un projet (propriété), on peut définir des Marqueurs (genre Debug) qui seront utilisé ensuite par le compilateur...

    The Monz, Toulouse

  4. #4
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 359
    Points : 141
    Points
    141
    Par défaut
    Citation Envoyé par neptune Voir le message
    #if DEBUG
    Console.WriteLine("Debug version");
    #endif
    C'est génial ça !
    Par contre, je n'ai pas le exactement le comportement que je veux :

    En fait, je lance toujours mon projet en mode debug, parfois je veux que grace à ma condition je passe dans le code de test, parfois je veux tout exécuter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #if DEBUG
                    for (int i = 0; i < maClassStatic.nbr; i++)
                    {
                        maListe[i].MaMethode();
                    }
    #else
                        foreach (MonObjet o in MaListe)
                        {
                            o.MaMethode();
                        }
    #endif
    J'aimerai que pour des tests, j'entre dans le code IF, et quand je test pas j'entre dans le ELSE.

    Disons que ce que je développe insére des données en base, le mode débug suffit et insère bien dans la base de donnée...
    Sinon j'inverse les bloc IF et ELSE :p mais c'est moyen, je cherche justement à ne pas revenir sur le code pour les tests.

    C'est déjà pas mal

    PS : Après la conception, comment on s'y prend pour avoir une release, et donc exécuter le code pas en DEBUG ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Citation Envoyé par Ticoche Voir le message
    PS : Après la conception, comment on s'y prend pour avoir une release, et donc exécuter le code pas en DEBUG ?
    Ben tu compiles en Release
    Ou alors tu utilises vs Express?

    On peut aussi utiliser l'attribut Conditional a appliquer sur une méthode :
    http://msdn2.microsoft.com/en-us/lib...58(VS.71).aspx

    Les deux méthodes sont différentes et ne répondent pas au même besoin!
    Dans le cas du Conditional, la méthode ne sera pas executée dans le build release, mais elle existera dans l'assembly.

    Dans le cas du #if c'est une directive pour le précompilo : le code ne sera pas "vu" pas le compilateur.

  6. #6
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 359
    Points : 141
    Points
    141
    Par défaut
    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. une méthode pour ne pas utiliser onLoad
    Par Brag__ dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/01/2008, 12h40
  2. Une méthode pour les sauts de page
    Par solorac dans le forum Excel
    Réponses: 3
    Dernier message: 08/08/2007, 13h07
  3. Réponses: 1
    Dernier message: 05/07/2007, 09h34
  4. Réponses: 2
    Dernier message: 04/06/2006, 19h53
  5. Réponses: 3
    Dernier message: 21/03/2006, 14h12

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