Sbyte [] vs byte [] []使用方法

时间:2010-06-08 08:07:17

标签: c# web-services bytearray

写的是

byte[][] getImagesForFields(java.lang.String[] fieldnames) 

获取给定字段的图像数组。

另一方面,只要我使用c#;

在asp.net 2.o上构建的web应用程序项目中使用该方法

上面声明的提供的web方法,返回sbyte; 看看下面的代码;

  formClearanceService.openSession(imageServiceUser);
  formClearanceService.prepareInstance(formId);
  byte[][] fieldImagesList = formClearanceService.getImagesForFields(fieldNames);
  formClearanceService.closeSession();

因此我收到以下错误:无法将类型'sbyte []'隐式转换为'byte [] []'

现在, 1-我应该问网络服务提供商发生了什么? 要么 2-任何其他可以使用sbyte的方式,因为我假设使用byte [] [],如下所示: byte [] ssss = fieldImagesList [0] ..

1 个答案:

答案 0 :(得分:1)

Java已经对字节进行了签名,因此该部分在某些方面是正确的(尽管无符号字节更自然) - 但令人烦恼的是它返回单个数组而不是锯齿状数组。我希望你不得不比较一些数据,看看你收到了什么与预期的结果。

但是在signed和unsigned之间进行更改可以很简单:

sbyte[] orig = ...
byte[] arr = Array.ConvertAll(orig, b => (byte)b);

或(更快)简单地说:

sbyte[] orig = ...
byte[] arr = new byte[orig.Length];
Buffer.BlockCopy(orig, 0, arr, 0, orig.Length);