Zrozumienie strumieni i ich życia (Flush, Dispose, Close)

Uwaga: już przeczytałem dwa następujące pytania:

Czy możesz wyjaśnić pojęcie strumieni?

C # używa strumieni

Koduję w C #

W prawie wszystkich przykładach kodu, które używają strumieni, .Dispose (), .Flush (), .Close () są prawie zawsze wywoływane.Co się dzieje w koncepcji strumienia?Jeśli nie dysponuję strumieniem, który zapisałem w zmiennej, czy moja aplikacja gdzieś wycieka?Dlaczego muszę zadzwonić do którejkolwiek z tych funkcji? Widziałem próbki kodu, które tego nie robią i nadal wykonują zadanie (bezpozorny złamanie)

Obecnie buduję klasę w mojej aplikacji, która zawiera metodę podstawową (nazwijmy toGetStream()), która zwraca strumień przezmyWebRequest.GetResponse().GetResponseStream()

Podstawowa metodaGetStream() zwraca aStream obiekt, którego można użyć do dowolnej operacji wymagającej strumienia (StreamReader, Bitmap () itp.).

Czy istnieje sposób na automatyczne usunięcie strumienia po jego ostatnim użyciu (zbieranie śmieci?) Bez zmuszania kogokolwiek do wywoływania.GetStream() ręcznie go pozbyć?

Jak zapewne wiesz, moje pytania są niejasne i ogólne. Moje rozumienie strumieni nie jest solidne, więc wszelkie linki do przydatnych artykułów, które oferują bardziej dogłębne spojrzenie na strumienie niż może zaoferować pytanie SO, zostaną docenione.

questionAnswers(1)

yourAnswerToTheQuestion