Cela peut sembler être une question noddy, mais je regardais cela parce que j'ai entendu quelqu'un affirmer que vous devez appeler Close() sur un FileStream, même si c'est dans un block (et ils ont un code où Close() est appelé juste à la fin du bloc). Je sais que Close() est censé appeler Dispose(), mais je pensais que je regarderais plus profondément puisque c'est le code .Net 1.1, et la majeure partie de mon expérience a été avec 2.0 sur. Une chose qui m'a frappé, c'est que la documentation MSDN pour FileStream a Dispose() et Dispose (bool) pour .Net 2.0, mais seulement Dispose (bool) pour .Net 1.1. Je pensais que cela pouvait être un oubli, donc j'ai utilisé Reflector pour regarder dans un assemblage - et là aussi, je vois Dispose (bool), mais pas Dispose().Comment IDisposable est-il implémenté sur FileStream dans .Net 1.1
Est-ce correct? Si oui, quelle est l'histoire ici? FileStream fonctionne dans un bloc using - que je pensais signifier qu'il doit implémenter IDisposable qui, à ma connaissance seulement déclare Dispose().
Y at-il un peu de magie du compilateur en cours, ou suis-je manque une mise en œuvre cachée de Dispose() quelque part (qui, vraisemblablement, appelle Dispose (true) ou Dispose (false)?)
Enfin (sans jeu de mots), pouvez-vous confirmer que la délimitation d'un FileStream à l'aide de block fermera le flux à la sortie de la portée dans .Net 1.1?
[modifier]
Juste pour clarifier les choses, ce code est C#. Je comprends que VB.Net n'a pas obtenu l'instruction using jusqu'à. Net 2.0, mais ma compréhension est que C# l'avait dans 1.1 (et mon code 1.1 l'a et il compile)
Il est documenté pour .Net 1.1 ici: http://msdn.microsoft.com/en-us/library/yh598w02(VS.71).aspx. De plus, j'ai du code devant moi dans VS2003, ciblant .Net 1.1, qui utilise des blocs. – philsquared
doit avoir été VB.NET qui l'a eu dans 2.0 alors .... –
... c'est-à-dire que le C# qui cible .Net 1.1 - using est une fonctionnalité de langage qui, AFAIK, ne nécessite aucun support supplémentaire du runtime. Je sais que VB.Net n'a pas compris jusqu'à .Net 2.0 – philsquared