2009-07-25 48 views

Trả lời

23

Tương đương là using tuyên bố

Một ví dụ sẽ

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

Hạn chế là kiểu của biến trong phạm vi các điều khoản sử dụng phải thực hiện IDisposable và nó là phương pháp Dispose() của nó mà được được gọi khi thoát khỏi khối mã được liên kết.

5

C# có báo cáo kết quả using, như đã đề cập trong câu trả lời khác và tài liệu ở đây:

Tuy nhiên, nó không tương đương tuyên bố with Python, trong đó không có analog của phương thức __enter__.

Trong C#:

using (var foo = new Foo()) { 

    // ... 

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

Trong Python:

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

    # ... 

    # foo.__exit__() called on exiting the block 

Thông tin thêm về các with tuyên bố ở đây:

Các vấn đề liên quan