Полезным удобством, представленным в .NET 4, является Stream.CopyTo(Stream [, Int32]), который считывает содержимое из текущего потока и записывает его в другой поток.
Это избавляет от необходимости немного утомительного кода, такого как этот:
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);
}
}
Так как у меня на этом компьютере нет .NET 4, мне было интересно, сможет ли кто-то, у кого установлен .NET 4, открыть Reflector и показать нам, как команда библиотеки классов Framework реализовала этот метод для .NET 4.
Сравните и сравните их реализацию с фрагментом кода выше. В частности, мне интересно узнать, какой размер буфера по умолчанию выбран.