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

Dotnet Discussion :

Questions générales ?


Sujet :

Dotnet

  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2011
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 456
    Points : 384
    Points
    384
    Par défaut Questions générales ?
    Bonjour J'ai plusieurs questions générales , je l'ai vu comme des questions dans des tests techniques.
    La première implémentation de la classe abstraite est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Public abstract class AbstractChartModel
    {
    public XmlDocument Dom {get;set;}
    public AbstractChartModel(string xmlfile)
    {
      Dom=new XmlDocument();
      Dom.load(xmlfile)
    }
    ~AbstractChartModel()
    {
    Dom=null
    }
    }
    1. A propos de l’initialisation et la libération de la mémoire... quelles affirmations parmis les suivantes sont exactes ?
      • A.Le XmlDocument, qui charge toutes les données en mémoire , est un bon choix pour être capable de traiter et manipuler les données avec performance dans le cas précédent

      • B.Les données chargées sont trop importantes pour être traitée avec le XMLDocument ,il vaut mieux utiliser un XmlTextReader

      • C.L’implémentation du finaliseur de la façon précédente permet de libérer dès que la référence n'est plus utilisée la mémoire

      • D.Les fuites de mémoires ne sont pas un problème en .Net ,grâce à l'aide du Garbage collector

      • E.il est possible de contrôler les exécutions du Garbage Collector , ce qui peut parfois être utile, notament lors de la manipulation de données importantes


    2e partie :
    Les utilisateurs demandent finalement de traiter des fichiers de données au format Excel (CSV),l'implementation devient:
    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
    public abstract class AbstratChartModel:IDisposable
    {
    public FileStream Stream {get;set}
    public AbstratChartModel(string file)
    { 
    var stream = new FileStream(file,FileMode.open);
    }
    ~AbstractChartModel()
    {
    }
    public void dispose()
    {
    if (stream!=null) stream.Dispose();
    }
    }
    1. A.La méthode dispose est appelée automatiquement par le garbage collector
      B.le finaliseur doit appeler la méthode dispose afin de s'assurer que les ressources non managées (du stream de fichier) seront correctement libérées, en cas de mauvaise utilisation de la classe
      C.La méthode Dispose devrait appeler "GC.SupppressFinaliza(this)"
      D.Il faut privilégier l'utilisation du mot clé using dans les manipulations des classes qui dériveront du AbstractChartModel


    que pensez vous des réponses ?

    Merci
    Bien Cordialement

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    Pour situer, je ne suis pas sur de moi pour le desttucteur, j'ai l'habitude d'utiliser l'interface idisposable, bref

    Je dirai la quetion 1:
    A: je ne sais pas cela depends de l'utilisation
    B: Idem
    C: normalement oui
    D: Non, il est tout a fait possible de faire de fuites memoire (mais il faut le vouloir un peu)
    E: oui mais c'est tres rare.

    Question2:
    A: Oui
    B: je ne sais pas
    C: Oui
    D: Oui

  3. #3
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 377
    Points
    20 377
    Par défaut
    Citation Envoyé par genius4evers Voir le message
    Bonjour J'ai plusieurs questions générales , je l'ai vu comme des questions dans des tests techniques.
    La première implémentation de la classe abstraite est la suivante :
    pour suggestion, appeler autant que possible dans tout destructeur, la méthode .dispose de chaque classe instanciée par new()
    parce que là dans l'exemple de code Dom est affecté à null.
    Je ne suis pas certain que le fait d'affecter Dom à null appelle forcément le destructeur de classe XmlDocument

  4. #4
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Points : 3 325
    Points
    3 325
    Par défaut
    Oui le destructeur doit juste appeler le dispose qui doit forcément être implémenté dans une classe qui a une propriété d'un type IDisposable.

    Mais dans ton cas pour une simple lecture de fichier on a pas forcément besoin d'une propriété pour stocker le stream.
    On utilise plutôt une variable locale (en utilisant un using comme c'est un IDisposable).

Discussions similaires

  1. [LDAP] Questions générales sur LDAP
    Par guiguisi dans le forum Autres SGBD
    Réponses: 5
    Dernier message: 25/05/2005, 10h05
  2. VUES : questions générales
    Par Equus dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 01/10/2004, 10h37
  3. question générale sur les conteneurs
    Par tut dans le forum C++
    Réponses: 6
    Dernier message: 01/09/2004, 10h11
  4. Question générale sur les affectations ?
    Par Clemaster dans le forum C++
    Réponses: 5
    Dernier message: 09/08/2004, 17h03
  5. [SGBD]Questions générales.
    Par Mobaladje dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 21/05/2004, 19h19

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