2009-07-25 2 views

risposta

23

L'equivalente è la dichiarazione using

Un esempio sarebbe

using (var reader = new StreamReader(path)) 
    { 
    DoSomethingWith(reader); 
    } 

La restrizione è che il tipo di variabile scope dalla clausola utilizzando deve implementare IDisposable ed è il suo metodo Dispose() che ottiene chiamato all'uscita dal blocco di codice associato.

5

C# presenta la dichiarazione using, come detto in un'altra risposta e documentato qui:

Tuttavia, è non equivale-with dichiarazione di Python, in quanto non v'è alcuna analogico del metodo __enter__.

In C#:

using (var foo = new Foo()) { 

    // ... 

    // foo.Dispose() is called on exiting the block 
} 

In Python:

with Foo() as foo: 
    # foo.__enter__() called on entering the block 

    # ... 

    # foo.__exit__() called on exiting the block 

Maggiori informazioni sul with dichiarazione qui: