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 :

[VB.Net] Peut-on implémenter un destructeur Shared ?


Sujet :

VB.NET

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 285
    Par défaut [VB.Net] Peut-on implémenter un destructeur Shared ?
    Bonjour,

    J'ai vu qu'il existait un constructeur Shared : public shared sub new ...

    ce qui peut être pratique ...

    j'aimerais donc savoir si existe un destructeur shared.
    j'ai essaye protected overrides Shared Finalize() ==> marche pô !

  2. #2
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Overrides ne peut être associer à Shared il me semble
    Donc prefere un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Shared Sub Dispose()
    End Sub
    Faudrait que tu nous precises l'interêt de cette procedure par rapport ta conception, possible que tu commettes une erreur à la base :

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 285
    Par défaut
    Merci pour la réponse mais je me doutais bien qu'Overrides ne veut pas dire Shared :-)

    Niveau conception ?

    Ben, j'ai une classe shared qui me permet de stocker des informations que je ne veux recharger 50 fois comme des pointeurs vers des fichiers.

    Je veux m'assurer que les fichiers sont bien fermé et les pointeurs à null. Donc je cherche un moyen et comme il y avait un constructeur shared, je me disais qu'un constructeur shared pourrait être intéressant !

  4. #4
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    C'est quoi une classe Shared :
    Pourquoi ne pas passer par une classe Singletonqui ne peut être instanciée qu'une seule fois et serait IDisposable :

  5. #5
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Par défaut
    Citation Envoyé par neguib
    C'est quoi une classe Shared :
    Pourquoi ne pas passer par une classe Singletonqui ne peut être instanciée qu'une seule fois et serait IDisposable :
    + 1

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 285
    Par défaut
    Pardon pour le terme classe shared ... désolé ...

    Pourquoi ? Pasque :-)

    Je crée des singletons quand mon besoin est celui-ci : je ne veux qu'une seule instance de ma classe durant tout mon execution.

    mais la, je ne veux pas d'instances du tout ... Il ne s'agit que d'une "classe" de services (ouvre un fichier, ferme un fichier) afin de les centraliser !

    Je me disais : "Tiens, si il y a un destructeur shared, je pourrais pte mettre en place des contrôles ..."

    Mais bon ... si c pas possible c pas grave !

  7. #7
    Membre éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut
    Hum, des méthodes statiques pour une classe de service, jusque là, on est sur le même chemin. Par contre, il me semble que tu partes dans le fossé (promis c'est pas moi qui t'y pousse), lorsque tu parles de cosntructeur/desctructeur statiques. Il n'existe malheureusement que les constructeurs statiques qui sont appelés une fois pour initialisation soit lors d'une instanciation, soit lors de l'accès à un membre statique de la meme classe.
    En ce sens, il ne s'agit pas vraiment d'un constructeur mais plutot d'une portion de code d'initialisation et en théorie, il ne faut donc pas acquérir de ressources qui n'y seraient pas libérées. Le "constructeur statique" n'est donc pas nécessaire.

  8. #8
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Citation Envoyé par maitrebn
    mais la, je ne veux pas d'instances du tout
    Alors pourquoi vouloir detruire ce qui n'a pas été instancié

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Citation Envoyé par maitrebn
    mais la, je ne veux pas d'instances du tout ... Il ne s'agit que d'une "classe" de services (ouvre un fichier, ferme un fichier) afin de les centraliser !
    Justement. Une classe de services/classe utilitaire n'est pas censée avoir d'état. Uniquement des méthodes statiques, pas de champs. Donc rien à détruire :)

    Moralité, pour la piste du problème de conception, regarde du côté de ce que tu as besoin de détruire. Il n'y aurait pas un autre endroit où caser ça, pour ne laisser que les méthodes dans la classe ?

    (en général, c'est une responsabilité qui retombe sur les clients de la classe eux-mêmes. au pire sur un singleton)

  10. #10
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 285
    Par défaut
    Comme je disais (niveau conception), je me demandais juste tiens "il y a un initialisateur statique" pkoi pas l'inverse !

    Je suis bien d'accord que je n'ai rien à libérer (d'ailleurs je n'ai rien à libérer :-) mais je m'en serais servis pour controler que toutes les connexions qui m'ont été demandées ont bien été fermées ... (par exemple !!!!)

    C'est tout !

    Voilà !

  11. #11
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    alors

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/06/2006, 10h52
  2. [VB.NET]Peut-on parcourir dynamiquement un datagrid ??
    Par jeff.jfs dans le forum Windows Forms
    Réponses: 6
    Dernier message: 09/05/2006, 13h00
  3. Réponses: 6
    Dernier message: 24/01/2006, 18h50
  4. [VB.NET] Peut-on modifier le web config à chaud?
    Par Immobilis dans le forum ASP.NET
    Réponses: 5
    Dernier message: 28/11/2005, 14h13
  5. [C#] [VS.NET] Peut on faire un accesseur sur objets?
    Par Designotik dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/01/2005, 21h56

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