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 :

Demande d'explication de code


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2009
    Messages : 33
    Points : 16
    Points
    16
    Par défaut Demande d'explication de code
    Bonjour a tous
    J’étudie vb.net sur un livre de formation et dans un exemple de code l'auteur déclare toujours la variable privée egal a -1 sans expliquer pourquoi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private m_intCategorieId As Integer = -1
    Pourquoi declarer cette variable a-1 et pas a 0 par exemple
    Une reponse?
    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Sans le contexte plus général, on peut supposer que :
    Les id représentant une catégorie doivent être des valeurs comprises de 0 à x.
    Ce doit être une convention de l'auteur pour indiquer que la valeur n'est pas initialisée avec une catégorie ou qu'aucune valeur n'est sélectionnée ou que la liste est vide.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2009
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    Oui effectivement cette variable contient un id qui va de 0 a x, le fait de l'instancier a -1 cela équivaut donc a le déclarer vide selon toi?

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    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 154
    Points : 25 072
    Points
    25 072
    Par défaut
    il y a 15 ans on devait faire comme ca

    en fait un integer vaut 0 par défaut, et il doit vouloir différencier 0 de valeur pas encore défini, et a choisit -1 comme "non défini"

    maintenant on fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim variable as integer?
    rajouter un ? après un type par valeur équivaut à écire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim variable as new nullable(of integer)
    c'est donc une variable dont le type est integer mais qui peut valoir Nothing (ca s'utilise avec .HasValue, .Value etc...)
    par défaut il ne vaut pas 0 mais Nothing
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2009
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    Merci d'avoir clarifié ce point Pol63
    Par ailleurs après avoir créé une multitude de propriété dans la classe contact il définit a la fin de la class deux constructeurs:
    un public sub new et un second sub new a al suite qui initialise chaque propriété
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Public Sub New()
     
            End Sub
            Public Sub New(ByVal ContactId As String, _
                           ByVal Nom As String, _
                           ByVal Prenom As String, _
                           ByVal Adresse As String, _
                           ByVal CodePostal As String, _
                           ByVal Ville As String, _
                           ByVal Email As String, _
                           ByVal Telephone As String, _
                           ByVal Fax As String, _
                           ByVal Gsm As String, _
                           ByVal Photo As String)
                m_strContactId = ContactId
                m_strNom = Nom
                m_strPrenom = Prenom
                m_strAdresse = Adresse
                m_strCodePostal = CodePostal
                m_strVille = Ville
                m_strEmail = Email
                m_strTelephone = Telephone
                m_strFax = Fax
                m_strGsm = Gsm
                m_strPhoto = Photo
     
            End Sub
    Comment cela fonctionne t-il?
    Après chaque instanciation quel méthode va être choisi?
    Encore merci

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    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 154
    Points : 25 072
    Points
    25 072
    Par défaut
    quand tu écris
    dim a as new classe(
    l'intellisense (auto complétion de vs) affichera le nombre de surcharges (= le nombres de possibilités pour cette méthode)
    tu choisis celle que tu veux

    typiquement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class Classe
     
      public sub new
      end sub
     
      public sub new(id as integer)
          me.Id = id
      end sub
     
      public property Id as integer
     
    end class
    et donc soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     dim c as new class() 
    c.Id = 5
    soit
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2009
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    Merci encore pour ces explications qui sont pour moi des clefs pour avancer
    Donc il s'agit d'une surcharge

Discussions similaires

  1. Demande d'explication de code std::find_if
    Par Kalite dans le forum C++
    Réponses: 2
    Dernier message: 28/02/2014, 14h46
  2. Demande d'explication de code
    Par nor99 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/02/2013, 14h35
  3. demande d'explication de code
    Par kawther dans le forum Débuter
    Réponses: 4
    Dernier message: 14/10/2008, 22h05
  4. demande d'explication de code
    Par fox1976 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 13/09/2006, 22h34
  5. utilisation de code barre - demande d'explication
    Par cortex024 dans le forum Windows
    Réponses: 15
    Dernier message: 16/02/2006, 16h37

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