W jaki sposób zaimplementowano metodę Stream.CopyTo (Stream) w .NET 4?
Użyteczną wygodą wprowadzoną w .NET 4 jestStream.CopyTo (Stream [, Int32]) który odczytuje treść z bieżącego strumienia i zapisuje go w innym strumieniu.
Eliminuje to potrzebę nieco nudnegokod taki jak ten:
public static void CopyStream(Stream input, Stream output)
{
byte[] buffer = new byte[32768];
while (true)
{
int read = input.Read (buffer, 0, buffer.Length);
if (read <= 0)
return;
output.Write (buffer, 0, read);
}
}
Ponieważ nie mam zainstalowanego na tym komputerze .NET 4, zastanawiałem się, czy ktoś, kto ma zainstalowany .NET 4, może otworzyć Reflector i pokazać nam, w jaki sposób zespół Framework Class Library wdrożył tę metodę dla .NET 4.
Porównaj i kontrastuj ich implementację z fragmentem kodu powyżej. W szczególności interesuje mnie, jaki domyślny rozmiar bufora został wybrany.