我只是要使用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;


(在here中,我省略了一些不重要的行)

这段代码中的new对我来说就像是没有用的垃圾收集器食物。 (如果文件很大,则可能会很大。)为什么他们不简单地写:

byte[] input = FileUpload1.FileBytes;


我对.NET和C#太陌生,不足以敢于宣称这仅仅是多余的或不好的书面示例。它有任何目的(也许是性能方面的好处)吗? (我也不明白为什么他们要从fileLen中减去1。)

最佳答案

MSDN的代码样本的质量确实有所不同,这是不良代码样本的一个很好的例子。

就像您说的那样,写起来更容易:

byte[] input = FileUpload1.FileBytes;


字节数组的长度有错误-没有理由从发布的长度中减去1。

08-05 15:12