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 } }
- 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(); } }
- 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
Partager