C# 无法隐式转换类型';int';至';字节';。存在显式转换(是否缺少强制转换?)

C# 无法隐式转换类型';int';至';字节';。存在显式转换(是否缺少强制转换?),c#,asp.net,file,file-io,byte,C#,Asp.net,File,File Io,Byte,在编写了以下代码之后,我得到的错误是无法将类型“int”隐式转换为“byte”。存在显式转换(是否缺少转换? 帮我解决这个问题。谢谢 解决方案:(感谢p.s.w.g) 解决了这个问题。正如p.s.w.g建议的那样,为了使用MemoryStream,我已将该值更改为4096,看起来您正在尝试初始化大小为FileSize的字节数组。您需要的语法如下: byte[] Buffer = new byte[FileSize - 1]; 但是,这实际上会创建一个比文件短一个字节的缓冲区。您可能打算这样做:

在编写了以下代码之后,我得到的错误是无法将类型“int”隐式转换为“byte”。存在显式转换(是否缺少转换?

帮我解决这个问题。谢谢

解决方案:(感谢p.s.w.g)


解决了这个问题。正如p.s.w.g建议的那样,为了使用
MemoryStream

,我已将该值更改为4096,看起来您正在尝试初始化大小为
FileSize
的字节数组。您需要的语法如下:

byte[] Buffer = new byte[FileSize - 1];
但是,这实际上会创建一个比文件短一个字节的缓冲区。您可能打算这样做:

byte[] Buffer = new byte[FileSize];
当然,您几乎肯定不想缓冲整个文件,否则它就不会被称为缓冲区。除非您真的需要,否则我建议您将缓冲区大小降低到更适度的大小(比如4096),或者将其读入一个新的内存

进一步阅读

试试这个:->

byte[] Buffer = BitConverter.GetBytes(FileSize-1);
            Array.Reverse(Buffer);
            byte[] result = Buffer;

(((int)(FileSize))-1)为什么要将其转换为字节数组?代码没有意义。通过关闭解决@Dineshkumar解释你想做什么感谢你的快速回复。它有效。。。!
byte[] Buffer = new byte[FileSize];
byte[] Buffer = BitConverter.GetBytes(FileSize-1);
            Array.Reverse(Buffer);
            byte[] result = Buffer;