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

VB.NET Discussion :

Avertissement sur variable assignée


Sujet :

VB.NET

  1. #1
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut Avertissement sur variable assignée
    Salut,

    Dans une page aspx.vb, j'ai le message d'avertissement suivant :

    La variable 'toto' est utilisé avant qu'une valeur ne lui ait été assignée. Une exception de référence null peut se produire au moment de l'exécution.
    Cela veut-il dire qu'il faut absolument initialiser la variable ?

    Comment procéder ?

    Merci par avance.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Octobre 2002
    Messages : 25
    Points : 26
    Points
    26
    Par défaut
    Salut,

    si tu utilise une variable sans lui avoir affecté auparavant une valeur, tu risque en effet de lever une exception.

    Bye

  3. #3
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut
    Salut,

    Merci de ta réponse.

    Ok, donc, globalement, il faut lui assigner une valeur du style .

    Un peu embêtant ça... mais bon. Puisqu'il le faut.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    ceci est un avertissement

    pour une variable de type par valeur (integer, date, string ...) la variable a une valeur par défaut
    0 pour un nombre, "" pour un string

    donc l'avertissement tu peux passer outre et ne pas initialiser la variable


    pour une variable objet, la variable contient nothing, et là ca peut etre risqué si tu ne sais pas ce que tu fais avec, mais des fois c'est dans la conception d'avoir une variable à nothing qu'on passe ensuite à une sub qui l'initialise


    enfin moi j'ai désactivé l'affichage des avertissements ...



    NB : le string est en fait un type objet qui fonctionne comme un type par valeur
    il peut etre égal à nothing mais peut etre utilisé quand meme, quand il est égal à nothing il est égal à "" (l'inverse n'est pas vrai)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    enfin moi j'ai désactivé l'affichage des avertissements ...
    C'est une très mauvaise idée. D'un point de vue conceptuel, un warning reste une erreur de développement, et de fait, devrait être corrigé.
    D'ailleurs l'option "Treat warning as errors" ne devrait pas pouvoir être désactivée.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  6. #6
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par SaumonAgile Voir le message
    C'est une très mauvaise idée. D'un point de vue conceptuel, un warning reste une erreur de développement, et de fait, devrait être corrigé.
    D'ailleurs l'option "Treat warning as errors" ne devrait pas pouvoir être désactivée.
    D'accord avec SaumonAgile, les avertissements doivent être pris au sérieux et être considérés comme des erreurs. De plus, ca permet un code plus clair et sans erreur de codage.

    Exemple, lors de la création d'une fonction, il faut toujours gérer toutes les eventualités ! et vb.net 2005 grace aux warnings nous aide pas mal
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  7. #7
    Membre habitué

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Points : 145
    Points
    145
    Par défaut
    Salut,

    Ok, merci pour vos remarques.

    J'ai donc initialisé les variables qui posées problèmes, mais aussi les objets à nothing. À priori, plus d'avertissement. Et je crois qu'un code sans avertissement et plus sympa...

  8. #8
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Citation Envoyé par esoso Voir le message
    Salut,

    Ok, merci pour vos remarques.

    J'ai donc initialisé les variables qui posées problèmes, mais aussi les objets à nothing. À priori, plus d'avertissement. Et je crois qu'un code sans avertissement et plus sympa...
    Oui

    PS : Un petit tag
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    pour une variable de type par valeur (integer, date, string ...) la variable a une valeur par défaut
    0 pour un nombre, "" pour un string
    C'est null la valeur par défaut d'un string il me semble... d'ailleurs string n'est pas un type valeur mais un type référence

  10. #10
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    Citation Envoyé par tomlev Voir le message
    C'est null la valeur par défaut d'un string il me semble... d'ailleurs string n'est pas un type valeur mais un type référence
    j'ai en effet précisé ca en NB
    mais un string à null = "" aussi



    et pour répondre à aspic et saumon agile, les avertissements sont paramétrables, ils sont là pour les noobs, quand on sait ce qu'on fait voire meme quand on fait des choses de haut niveau ou d'une conception différente de celle de microsoft, les avertissements de base ne servent à rien
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    et pour répondre à aspic et saumon agile, les avertissements sont paramétrables, ils sont là pour les noobs, quand on sait ce qu'on fait voire meme quand on fait des choses de haut niveau ou d'une conception différente de celle de microsoft, les avertissements de base ne servent à rien
    Tu en es maintenant à plus de 1500 messages et tu te considères encore comme un noob. A mon avis, tu manques un peu de confiance en toi non ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  12. #12
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 150
    Points : 25 066
    Points
    25 066
    Par défaut
    mal lu à mon avis
    je dis que les avertissements ne servent souvent à rien
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Je suis pas trop d'accord avec toi sperot51... même pour un développeur expérimenté les avertissements sont utiles, ils permettent de corriger de nombreuses fautes d'inattention et de repérer les sources possibles de bugs avant qu'ils ne se produisent.

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

Discussions similaires

  1. substr assignation sur variable
    Par djamfiat dans le forum SAS Base
    Réponses: 5
    Dernier message: 28/08/2014, 23h35
  2. retour à la ligne sur variable DOS
    Par Goldorak2 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 29/03/2007, 18h32
  3. Problème sur Variable
    Par Jordmund dans le forum Access
    Réponses: 1
    Dernier message: 16/05/2006, 12h30
  4. Réponses: 8
    Dernier message: 20/02/2006, 16h28
  5. Comparaison sur variable de type Binary (32)
    Par krapno dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 26/10/2005, 13h48

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