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 :

correction d un code en vb.net


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 79
    Points : 32
    Points
    32
    Par défaut correction d un code en vb.net
    je vous en prie une j ai un probleme au niveau de poo en vbnet j ai une classe etagere de livre et une classes de livres et un module de sub main
    j ai une boite de debogage lors d execution qui me dit :La référence d'objet n'est pas définie à une instance d'un objet.

    le code c est comme suit :
    classe livre
    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
    Public Class livre 
        Private _titre As String 
     
        Public Sub New() 
     
        End Sub 
     
        Property titre() 
            Get 
                Return _titre 
            End Get 
            Set(ByVal value) 
                _titre = value 
            End Set 
        End Property 
    End Class

    la classe etagere:
    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
    Public Class etagere 
        Private t() As livre 'un tableau des livres 
        Public nb As Integer 
        Dim j As Integer 'le nombre de livre existant dans l'etager 
    
        Sub New() 
    
        End Sub 
    
        Sub New(ByVal nombrlivre As Integer) 'le programmeur va choisir le nombre des livres que peut contien un etager 
            nb = nombrlivre - 1 
            ReDim t(nb) 
            t(nb) = New livre 
        End Sub 
         
        Sub ajouter_livre(ByVal titr As String) 
    
            If j <= nb Then 'on ajoute à condition qu on depasse pas le nombre de livre que peut supporter l'etager 
                t(j).titre = titr ' le programme se bloque ici
                j = j + 1 
            Else 
                Console.WriteLine("l'etager est pleine") 
            End If 
        End Sub 
         
    End Class
    et le module pour tester le programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Module Module1 
        Dim etager1 As New etagere(4) 'ici je precise 4 livre pour l etagere1
        Sub Main() 
     
            etager1.ajouter_livre("vb.net") 
     
        End Sub 
    End Module
    ******le debogage s effectue au niveau de la classe etager la procedure ajouter_livre() la ligne t(j).titre = titr
    je vous en prie de me faire la correction le plus vite possible pr c q je suis pressé par les examen et merci

  2. #2
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Salut,
    Pourrais-tu mettre ton code entre les balises #Code stp ? Ce serait plus lisible pour tous.
    Peut etre que ton problème vient du fait que t n'est pas public, il est en private.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private t() As livre 'un tableau des livres
    J'espère que cela va t'aider.
    ~ Lola ~

  3. #3
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Dans l'initialisation de ton etagere (new) tu n'assigne un livre qu'a la position 4 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim etager1 As New etagere(4)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Sub New(ByVal nombrlivre As Integer) 'le programmeur va choisir le nombre des livres que peut contien un etager 
            nb = nombrlivre - 1 
            ReDim t(nb) 
            t(nb) = New livre 
        End Sub
    Donc quand tu tente d'appeler la méthode ajouter livre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Sub ajouter_livre(ByVal titr As String) 
    
            If j <= nb Then 'on ajoute à condition qu on depasse pas le nombre de livre que peut supporter l'etager 
                t(j).titre = titr ' le programme se bloque ici
                j = j + 1 
            Else 
                Console.WriteLine("l'etager est pleine") 
            End If 
        End Sub
    tu bloque sur cette ligne car tu appelles une propriété sur la variable t(0) qui n'as pas encore recu d'objet. (il n'y en a qu'un en t(4))

    Pour bien faire, quand tu fait ton new il faudrait que tu fasses une boucle qui remplit tout les livres... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Sub New(ByVal nombrlivre As Integer) 'le programmeur va choisir le nombre des livres que peut contien un etager 
            nb = nombrlivre - 1 
            ReDim t(nb) 
    for i as integer = 0 to nb
            t(i) = New livre 
    end for
        End Sub

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 79
    Points : 32
    Points
    32
    Par défaut
    oui c est la solution que j ai trouvé juste directement apres l envoie de ma question et j ai compris ma faute il s agit que j ai instancié seulement l objet de dernier case de tableau de toute façon merci Sankasssss de ton intervention correcte

    merci à votre intervention lola06 c est gentie
    l essentiel qu on se partage nos idées merci à nouveau.

  5. #5
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut [VB.NET/SQL Server] Problème régulier lors du lancement
    Bonjour,

    Pour faire des tests, je lance l'application avec F5. la majorité du temps ca marche, sauf parfois ca coince, aucune erreur de code, rien n'est bizare, l'application ne se lance pas et souligne moi en jaune à chaque fois une méthode .show d'une forme! avec un petit "trine" comme un message informatif mais pas de message, . Dans le meilleurs des cas, je relance Visual Studio et ca fonctionne mais parfois il faut relancer la machine!

    Avez - vous une idée d'où pourrait provenir le problème?


    Merci

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

Discussions similaires

  1. traduction d'un code en vb.net
    Par nabilfaouzi dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/03/2008, 12h05
  2. [WiFi] IP correcte, mais pas de connexion au net
    Par gangsoleil dans le forum Windows Vista
    Réponses: 4
    Dernier message: 19/07/2007, 16h03
  3. Réponses: 2
    Dernier message: 02/02/2007, 15h53
  4. Cherche codes sources campuspress.net
    Par rems14 dans le forum C++
    Réponses: 3
    Dernier message: 07/06/2006, 18h22
  5. [Outils] Comment transformer du vieux code VB en .Net ?
    Par linux dans le forum EDI/Outils
    Réponses: 10
    Dernier message: 17/02/2006, 11h29

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