asp: FileUpload.FileBytes пример в MSDN путать - PullRequest
4 голосов
/ 01 марта 2010

Я только собирался использовать свойство FileUpload.FileBytes, но, глядя на соответствующий пример в библиотеке MSDN, я запутался в этой части:

int fileLen;

// Get the length of the file.
fileLen = FileUpload1.PostedFile.ContentLength;

// Create a byte array to hold the contents of the file.
byte[] input = new byte[fileLen - 1];
input = FileUpload1.FileBytes;

(из здесь , я пропустил несколько неважных строк)

new в этом коде выглядит для меня как еда для сборщика мусора без толку. (Возможно, большая еда, если файл большой.) Почему бы им просто не написать:

byte[] input = FileUpload1.FileBytes;

Я слишком новичок в .NET и C #, чтобы быть достаточно смелым, чтобы объявить это просто излишним или плохо написанным примером. Есть ли у него какая-то цель (возможно, выигрыш в производительности или около того)? (Также я не понимаю, почему они вычитают 1 из fileLen.)

1 Ответ

2 голосов
/ 01 марта 2010

Примеры кода из MSDN различаются по качеству, и это хороший пример плохого примера кодирования.

Как вы говорите, проще написать:

byte[] input = FileUpload1.FileBytes;

И есть ошибка с длиной байтового массива - нет причин вычитать 1 из объявленной длины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...