我在c#中有这个功能:
public string CommitDocument(string extension, byte[] fileBytes)
{
// some code here
}
我试图像这样调用这个函数:
CommitDocument("document.docx", byte [1493]);
我收到错误:"无效的表达术语' byte'"。如何将值传递给byte类型的参数?
答案 0 :(得分:4)
byte []是一个字节数组,你需要先用' new'分配数组。
byte[] myArray = new byte[1493];
CommitDocument("document.docx", myArray);
答案 1 :(得分:-1)
您将CommitDocument
定义为采用字节数组。单个字节不能转换为字节数组。或者至少编译器没有隐含地这样做。围绕这种限制有几种方法:
提供一个带有一个字节的重载并将其转换为一个元素数组:
public string CommitDocument(string extension, byte fileByte)
{
//Make a one element arry from the byte
var temp = new byte[1];
temp[0] = fileByte;
//Hand if of to the existing code.
CommitDocument(extension, temp);
}
否则转为fileBytes
参数中的Params
。您可以向Params
提供任意数量的逗号分隔字节,编译器将自动将它们转换为数组。有关详细信息和限制,请参阅Params
文档:
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/params