VB.NET

Guide pratique : Déclaration d’un objet en VB.NET

La déclaration d’un objet en VB.NET est une tâche fondamentale dans la programmation orientée objet (POO). Ce guide pratique vous accompagne étape par étape pour comprendre comment déclarer, initialiser et utiliser des objets en VB.NET.


1. Comprendre les bases d’un objet

Un objet est une instance d’une classe. Une classe définit la structure et le comportement d’un objet. Une fois une classe définie, vous pouvez déclarer des objets basés sur cette classe.


2. Syntaxe de base pour déclarer un objet

Déclaration d’un objet :
Dim nomObjet As TypeDeClasse
  • Dim : Mot-clé pour déclarer une variable.
  • nomObjet : Nom que vous donnez à l’objet.
  • TypeDeClasse : Nom de la classe à partir de laquelle l’objet est créé.
Exemple :
Dim voiture As NouvelleVoiture

Dans cet exemple, voiture est un objet de la classe NouvelleVoiture.


3. Initialisation d’un objet

Pour utiliser un objet, vous devez l’initialiser. Cela peut se faire en utilisant le mot-clé New.

Syntaxe d’initialisation :
nomObjet = New TypeDeClasse()
Déclaration et initialisation combinées :
Dim voiture As NouvelleVoiture = New NouvelleVoiture()

4. Exemple complet avec une classe

Créons une classe NouvelleVoiture et déclarons un objet à partir de cette classe.

Classe :
Public Class NouvelleVoiture
    Public Marque As String
    Public Modele As String

    Public Sub AfficherDetails()
        Console.WriteLine("Marque : " & Marque)
        Console.WriteLine("Modèle : " & Modele)
    End Sub
End Class
Déclaration et utilisation d’un objet :
Module Module1
    Sub Main()
        ' Déclaration et initialisation de l'objet
        Dim voiture As NouvelleVoiture = New NouvelleVoiture()

        ' Initialisation des propriétés
        voiture.Marque = "Toyota"
        voiture.Modele = "Corolla"

        ' Appel d’une méthode
        voiture.AfficherDetails()

        Console.ReadLine()
    End Sub
End Module

Sortie :

Marque : Toyota
Modèle : Corolla

5. Notions avancées : Objet avec un constructeur

Un constructeur est une méthode spéciale appelée automatiquement lors de la création d’un objet.

Exemple avec un constructeur :
Public Class NouvelleVoiture
    Public Marque As String
    Public Modele As String

    ' Constructeur
    Public Sub New(marque As String, modele As String)
        Me.Marque = marque
        Me.Modele = modele
    End Sub

    Public Sub AfficherDetails()
        Console.WriteLine("Marque : " & Marque)
        Console.WriteLine("Modèle : " & Modele)
    End Sub
End Class
Déclaration avec le constructeur :
Module Module1
    Sub Main()
        ' Déclaration et initialisation de l'objet avec des paramètres
        Dim voiture As NouvelleVoiture = New NouvelleVoiture("Toyota", "Corolla")

        ' Appel de méthode
        voiture.AfficherDetails()

        Console.ReadLine()
    End Sub
End Module

Sortie :

Marque : Toyota
Modèle : Corolla

6. Gestion des objets : Déclaration d’un objet en tant que Nothing

Si vous ne souhaitez pas initialiser un objet immédiatement, vous pouvez le déclarer en tant que Nothing.

Exemple :
Dim voiture As NouvelleVoiture = Nothing

' Initialisation ultérieure
voiture = New NouvelleVoiture("Honda", "Civic")

Gérer plusieurs objets en VB.NET

Gérer plusieurs objets en VB.NET peut être fait efficacement en utilisant des structures comme des tableaux, des listes, ou d’autres collections. Cela permet de manipuler un grand nombre d’objets sans devoir déclarer chaque instance individuellement.


1. Utiliser des tableaux pour gérer plusieurs objets

Si vous savez combien d’objets seront nécessaires, vous pouvez utiliser un tableau.

Exemple :

Supposons que vous ayez une classe NouvelleVoiture :

Public Class NouvelleVoiture
    Public Marque As String
    Public Modele As String

    Public Sub New(marque As String, modele As String)
        Me.Marque = marque
        Me.Modele = modele
    End Sub

    Public Sub AfficherDetails()
        Console.WriteLine("Marque : " & Marque)
        Console.WriteLine("Modèle : " & Modele)
    End Sub
End Class
Gérer plusieurs objets avec un tableau :
Module Module1
    Sub Main()
        ' Déclarez un tableau d'objets NouvelleVoiture
        Dim voitures(2) As NouvelleVoiture

        ' Initialisez chaque objet dans le tableau
        voitures(0) = New NouvelleVoiture("Toyota", "Corolla")
        voitures(1) = New NouvelleVoiture("Honda", "Civic")
        voitures(2) = New NouvelleVoiture("Ford", "Focus")

        ' Parcourez le tableau et affichez les détails
        For Each voiture In voitures
            voiture.AfficherDetails()
        Next

        Console.ReadLine()
    End Sub
End Module
Sortie :
Marque : Toyota
Modèle : Corolla
Marque : Honda
Modèle : Civic
Marque : Ford
Modèle : Focus

2. Utiliser une liste générique (List)

Si le nombre d’objets est dynamique (pas défini à l’avance), utilisez une collection comme List(Of T).

Exemple avec une liste :
Imports System.Collections.Generic

Module Module1
    Sub Main()
        ' Déclarez une liste d'objets NouvelleVoiture
        Dim voitures As New List(Of NouvelleVoiture)()

        ' Ajoutez des objets à la liste
        voitures.Add(New NouvelleVoiture("Toyota", "Corolla"))
        voitures.Add(New NouvelleVoiture("Honda", "Civic"))
        voitures.Add(New NouvelleVoiture("Ford", "Focus"))

        ' Parcourez la liste et affichez les détails
        For Each voiture In voitures
            voiture.AfficherDetails()
        Next

        Console.ReadLine()
    End Sub
End Module
Avantages d’une liste :
  • Vous pouvez ajouter, supprimer ou insérer des objets dynamiquement.
  • Pas besoin de définir la taille à l’avance.

3. Utiliser un dictionnaire (Dictionary<TKey, TValue>)

Un Dictionary permet de stocker des objets en utilisant une clé unique pour chaque objet, ce qui facilite la recherche et l’organisation.

Exemple avec un dictionnaire :
Imports System.Collections.Generic

Module Module1
    Sub Main()
        ' Déclarez un dictionnaire avec une clé (par exemple : immatriculation)
        Dim voitures As New Dictionary(Of String, NouvelleVoiture)()

        ' Ajoutez des objets au dictionnaire
        voitures.Add("ABC123", New NouvelleVoiture("Toyota", "Corolla"))
        voitures.Add("DEF456", New NouvelleVoiture("Honda", "Civic"))
        voitures.Add("GHI789", New NouvelleVoiture("Ford", "Focus"))

        ' Parcourez le dictionnaire et affichez les détails
        For Each keyValuePair In voitures
            Console.WriteLine("Immatriculation : " & keyValuePair.Key)
            keyValuePair.Value.AfficherDetails()
        Next

        Console.ReadLine()
    End Sub
End Module
Sortie :
Immatriculation : ABC123
Marque : Toyota
Modèle : Corolla
Immatriculation : DEF456
Marque : Honda
Modèle : Civic
Immatriculation : GHI789
Marque : Ford
Modèle : Focus

4. Utiliser une collection personnalisée

Si vous avez besoin de fonctionnalités spécifiques, vous pouvez créer votre propre collection en héritant de Collection(Of T).

Exemple de collection personnalisée :
Public Class CollectionVoitures
    Inherits Collection(Of NouvelleVoiture)

    Public Sub AfficherToutesLesVoitures()
        For Each voiture In Me
            voiture.AfficherDetails()
        Next
    End Sub
End Class
Utilisation de la collection personnalisée :
Module Module1
    Sub Main()
        ' Déclarez une collection personnalisée
        Dim maCollection As New CollectionVoitures()

        ' Ajoutez des objets
        maCollection.Add(New NouvelleVoiture("Toyota", "Corolla"))
        maCollection.Add(New NouvelleVoiture("Honda", "Civic"))
        maCollection.Add(New NouvelleVoiture("Ford", "Focus"))

        ' Affichez tous les détails
        maCollection.AfficherToutesLesVoitures()

        Console.ReadLine()
    End Sub
End Module

5. Gestion avancée : Filtrer et rechercher des objets

Avec des listes ou des dictionnaires, vous pouvez facilement rechercher ou filtrer des objets.

Exemple de filtrage :
Dim voitures As New List(Of NouvelleVoiture) From {
    New NouvelleVoiture("Toyota", "Corolla"),
    New NouvelleVoiture("Honda", "Civic"),
    New NouvelleVoiture("Ford", "Focus")
}

' Trouver toutes les voitures dont la marque est "Honda"
Dim voituresHonda = voitures.Where(Function(v) v.Marque = "Honda")

For Each voiture In voituresHonda
    voiture.AfficherDetails()
Next

Résumé des techniques pour gérer plusieurs objets

MéthodeUtilisation
TableauxPour un nombre fixe d’objets.
List(Of T)Pour un nombre variable d’objets avec des ajouts/suppressions dynamiques.
DictionaryPour associer une clé à chaque objet (recherche rapide).
CollectionsPour des fonctionnalités avancées et personnalisées.

Comment optimiser les objets en mémoire en VB.NET

Une gestion efficace des objets en mémoire est essentielle pour améliorer les performances et éviter les fuites de mémoire dans vos applications. Voici des stratégies pratiques pour optimiser les objets en mémoire en VB.NET.


1. Utiliser le mot-clé Nothing pour libérer les références

Lorsque vous n’avez plus besoin d’un objet, définissez-le sur Nothing. Cela indique au Garbage Collector (GC) que l’objet n’est plus utilisé.

Exemple :
Dim voiture As NouvelleVoiture = New NouvelleVoiture("Toyota", "Corolla")
' Utilisation de l'objet
voiture.AfficherDetails()

' Libération de la référence
voiture = Nothing

Note : Le Garbage Collector ne libère pas immédiatement la mémoire, mais Nothing indique que l’objet peut être nettoyé.


2. Implémenter IDisposable pour libérer les ressources non managées

Pour des objets utilisant des ressources non managées (par exemple, fichiers, connexions réseau ou base de données), implémentez l’interface IDisposable. Cela vous permet de nettoyer les ressources avec la méthode Dispose.

Exemple d’objet avec IDisposable :
Public Class FichierGestion
    Implements IDisposable

    Private fichier As IO.StreamWriter

    Public Sub New(chemin As String)
        fichier = New IO.StreamWriter(chemin)
    End Sub

    Public Sub Ecrire(texte As String)
        fichier.WriteLine(texte)
    End Sub

    Public Sub Dispose() Implements IDisposable.Dispose
        If fichier IsNot Nothing Then
            fichier.Close()
            fichier.Dispose()
            fichier = Nothing
        End If
    End Sub
End Class
Utilisation avec un bloc Using :
Sub Main()
    Using gestionnaire As New FichierGestion("monFichier.txt")
        gestionnaire.Ecrire("Bonjour, monde !")
    End Using
    ' Le fichier est automatiquement fermé ici.
End Sub

3. Favoriser les blocs Using pour une gestion automatique

Le mot-clé Using garantit que les objets qui implémentent IDisposable sont correctement libérés, même en cas d’erreur.

Exemple :
Using connexion As New SqlConnection("MaChaineDeConnexion")
    connexion.Open()
    ' Travail avec la connexion
End Using
' La connexion est fermée automatiquement

4. Réduire la portée des objets

Réduisez la portée des objets pour limiter leur durée de vie. Déclarez les variables aussi près que possible de leur utilisation.

Exemple :
Sub Traitement()
    ' Réduction de la portée
    For i As Integer = 1 To 10
        Dim voiture As New NouvelleVoiture("Marque" & i, "Modèle" & i)
        voiture.AfficherDetails()
    Next
    ' Les objets sont libérés à la fin de la boucle.
End Sub

5. Utiliser des structures au lieu des classes pour les petits objets

Les structures (Structure) sont des types valeur qui consomment moins de mémoire que les classes (types référence) pour les objets simples.

Exemple :
Structure Point
    Public X As Integer
    Public Y As Integer
End Structure

Sub Main()
    Dim p As New Point With {.X = 10, .Y = 20}
    Console.WriteLine($"Point : ({p.X}, {p.Y})")
End Sub

Les structures sont plus efficaces pour les objets temporaires ou légers car elles ne nécessitent pas d’allocation sur le tas (heap).


6. Éviter les objets inutiles avec des variables Static

Les variables Static conservent leur valeur entre les appels, ce qui évite de réallouer les objets inutiles.

Exemple :
Sub Compteur()
    Static compteur As Integer
    compteur += 1
    Console.WriteLine("Compteur : " & compteur)
End Sub

7. Utiliser le Garbage Collector intelligemment

Le Garbage Collector en VB.NET est automatique, mais vous pouvez en tirer parti efficacement :

  • Évitez d’appeler GC.Collect manuellement, sauf en cas de besoin spécifique. Laissez le framework décider du meilleur moment.
  • Réduisez les références circulaires en utilisant des références faibles (WeakReference) pour les objets rarement utilisés.
Exemple avec une référence faible :
Dim referenceFaible As New WeakReference(New NouvelleVoiture("Toyota", "Corolla"))

If referenceFaible.IsAlive Then
    Dim voiture As NouvelleVoiture = CType(referenceFaible.Target, NouvelleVoiture)
    voiture.AfficherDetails()
End If

8. Utiliser des collections adaptées

  • Préférez des collections génériques (List, Dictionary) aux collections non typées comme ArrayList, car elles évitent les conversions inutiles.
  • Supprimez explicitement les éléments inutiles dans les collections pour libérer la mémoire.
Exemple :
Dim voitures As New List(Of NouvelleVoiture) From {
    New NouvelleVoiture("Toyota", "Corolla"),
    New NouvelleVoiture("Honda", "Civic")
}

' Suppression d'un élément
voitures.RemoveAt(0)

9. Activer le mode “Release” pour les builds de production

En mode “Debug”, VB.NET inclut des informations supplémentaires pour le débogage, ce qui augmente la consommation mémoire. En mode “Release”, ces informations sont omises, réduisant l’utilisation de la mémoire.


10. Suivre et analyser la mémoire avec des outils

Pour détecter et corriger les problèmes de mémoire :

  • Utilisez Visual Studio Diagnostic Tools pour surveiller l’utilisation de la mémoire.
  • Utilisez des outils tiers comme dotMemory ou ANTS Memory Profiler.

Résumé des bonnes pratiques pour optimiser les objets en mémoire

TechniqueDescription
Libérer les références (Nothing)Indique au Garbage Collector que l’objet n’est plus nécessaire.
Implémenter IDisposableNettoyez les ressources non managées (fichiers, connexions, etc.).
Utiliser UsingGarantit que les objets sont libérés automatiquement.
Réduire la portée des variablesDiminue la durée de vie des objets inutiles.
Favoriser les structuresPour les objets légers, préférez les types valeur.
Gérer les collections intelligemmentUtilisez des collections typées et supprimez les éléments inutiles.
Limiter les références circulairesÉvitez les fuites mémoire en utilisant des références faibles.
Utiliser des outils de diagnosticAnalysez les performances et corrigez les problèmes de mémoire.

Autres articles

Guide : Déclaration d’un objet en VB.NET...
VB.NET (Visual Basic .NET) est un langage orienté objet qui...
Read more
Guide : Comment ouvrir une base de...
Ce guide explique étape par étape comment ouvrir une base...
Read more
Guide : Afficher une miniature d’un fichier...
En VB.NET, il n’existe pas de méthode native pour afficher...
Read more
AZ

Share
Published by
AZ

Recent Posts

Création et Utilisation d’une Fiche de Maintenance Curative : Template Imprimable

La fiche de maintenance curative est un outil indispensable pour enregistrer, analyser, et suivre les…

2 heures ago

Guide : La Proposition Subordonnée Relative

La proposition subordonnée relative est une phrase subordonnée qui apporte une précision ou une information…

3 heures ago

Guide : Comprendre et Utiliser le Point de Vue Interne

Le point de vue interne, ou focalisation interne, est une manière de raconter une histoire…

3 heures ago

Création et Utilisation d’une Fiche de Maintenance Préventive : Template Imprimable

La fiche de maintenance préventive est un outil essentiel pour assurer le bon fonctionnement des…

3 heures ago

Création et Utilisation d’une Fiche de Suivi Maintenance Machine : Template Imprimable

La fiche de suivi maintenance machine est un outil indispensable pour assurer le bon fonctionnement…

3 heures ago

Guide des Points de Vue Narratifs (Niveau 4ème)

Dans la narration, le point de vue détermine la manière dont une histoire est racontée,…

4 heures ago

This website uses cookies.