Chciałbym wiedzieć, kiedy powinienem i nie powinienem owijać rzeczy w bloku USING.C# USING keyword - kiedy i kiedy go nie używać?
Z tego co rozumiem, kompilator tłumaczy go na próbę/finally, gdzie ostatecznie wywołuje Dispose() na obiekcie.
Zawsze używam KORZYSTAĆ z połączeń bazy danych i dostępu do plików, ale bardziej z przyzwyczajenia niż z 100% zrozumienia. Wiem, że powinieneś explicit (lub przy użyciu) Dispose() obiektów, które kontrolują zasoby, aby zapewnić, że są one uwalniane natychmiast, a nie kiedy CLR czuje się jak to, ale to gdzie moje zrozumienie zepsuje.
Czy IDisposables nie są usuwane, gdy wykraczają poza zakres?
Czy muszę użyć USINGU tylko wtedy, gdy mój obiekt wykorzystuje funkcję Dispose do uporządkowania się?
Dzięki
Edit: Wiem, że istnieje kilka innych stanowisk w kluczowych używają, ale jestem bardziej zainteresowany w odpowiedzi odnoszącej CLR i dokładnie co się dzieje wewnętrznie
Andrew
A jeśli użyjecie tej techniki, proszę, proszę, proszę nie zapomnieć "#if DEBUG". To ty, myślę o JetBrains, z twoimi 30000 obiektami w kolejce finalizatora Visual Studio ... –
To niefortunne. –
+1, chciałbym zrobić więcej niż 1 głos w górę: p ... doskonała wiedza jest udostępniana na stackoverlow .... jest po prostu świetna ... –