Questa potrebbe sembrare una domanda assurda, ma stavo guardando questo perché ho sentito qualcuno affermare che è necessario chiamare Close() su un FileStream, anche se è in un utilizzo block (e hanno un codice dove Close() viene chiamato a destra alla fine del blocco).Implementato come IDisposable su FileStream in .Net 1.1
So che Close() ha lo scopo di chiamare Dispose(), ma ho pensato che avrei un aspetto più approfondito poiché questo è il codice .Net 1.1, e la maggior parte della mia esperienza è stata con 2.0 in poi.
Una cosa che mi ha colpito è che la documentazione MSDN per FileStream ha Dispose() e Dispose (bool) per .Net 2.0, ma solo Dispose (bool) per .Net 1.1.
Ho pensato che potesse essere una svista, quindi ho usato Reflector per esaminare un assieme - e anche lì, vedo Dispose (bool), ma non Dispose().
È corretto? Se è così, qual è la storia qui? FileStream funziona in un blocco using, che pensavo volesse implementare IDisposable che, a mia conoscenza, dichiara Dispose().
C'è una certa magia compilatore in corso, o mi sto perdendo un'implementazione nascosta di Dispose() da qualche parte (che, presumibilmente, chiama Dispose (true) o Dispose (false)?)
Infine (no pun intended), puoi confermare che l'ambito di un FileStream nell'uso del blocco chiuderà il flusso all'uscita dell'ambito in .Net 1.1?
[modifica]
Giusto per chiarire, questo è il codice C#. Capisco che VB.Net non ha ottenuto l'istruzione using fino a .Net 2.0, ma la mia comprensione è che C# ce l'aveva in 1.1 (e il mio codice 1.1 qui ce l'ha e lo compila)
è documentato per la Net 1.1 qui: http://msdn.microsoft.com/en-us/library/yh598w02(VS.71).aspx. Inoltre, ho il codice di fronte a me in VS2003, rivolto a .Net 1.1, che usa i blocchi. – philsquared
deve essere stato VB.NET che lo ha ottenuto in 2.0 quindi .... –
... cioè, il C# che ha come target .Net 1.1 - l'uso è una funzione di linguaggio che, AFAIK, non richiede ulteriore supporto dal runtime. So che VB.Net non l'ha ottenuto fino a .Net 2.0 – philsquared