如何在c#函数

时间:2018-02-09 16:28:54

标签: c#

我在c#中有这个功能:

public string CommitDocument(string extension, byte[] fileBytes)
{
   // some code here
}

我试图像这样调用这个函数:

  CommitDocument("document.docx", byte [1493]);

我收到错误:"无效的表达术语' byte'"。如何将值传递给byte类型的参数?

2 个答案:

答案 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