2010-11-24 47 views

Répondre

10

Ils exécuteront dans l'ordre textuel, et être disposé dans inverse ordre - si localFileSream sera disposé d'abord, puis ftpStream.

Fondamentalement, votre code est équivalent à:

using (Stream ftpStream = ...) 
{ 
    using (FileStream localFileStream = ...) 
    { 
     // localFileStream will be disposed when leaving this block 
    } 
    // ftpStream will be disposed when leaving this block 
} 

Il va plus loin que si. Votre code est aussi équivalent (en laissant de côté les différents types de localFileStream) à ceci:

using (Stream ftpStream = ..., localFileStream = ...) 
{ 
    ... 
} 
2

Oui. Cette syntaxe est juste un raccourci ou un autre moyen d'imbriquer des instructions using. Tout ce que vous faites est d'omettre les crochets sur la première déclaration using. C'est équivalent à:

using (Stream ftpStream = ftpResponse.GetResponseStream()) 
{ 
    using (FileStream localFileStream = (new FileInfo(localFilePath)).Create()) 
    { 
     //insert your code here 
    } 
}